Coinbase utilizza AWS Step Functions per distribuire in modo sicuro in AWS in pochi secondi

600x400_Coinbase_Logo resize

Le criptovalute forniscono un accesso decentralizzato ai fondi e consentono transazioni simili ai contanti che non possono essere annullate da nessuno tranne la parte che riceve i fondi. Queste caratteristiche portano alla crescente popolarità delle criptovalute, non solo tra gli investitori rispettosi della legge, ma anche tra gli attori malintenzionati, le cui motivazioni e opportunità per il furto di criptovaluta crescono man mano che le criptovalute diventano più ampiamente utilizzate. Le segnalazioni di furti di criptovaluta all'Internet Crime Complaint Center (IC3) dell'FBI hanno totalizzato 182 milioni di dollari nel 2018, un aumento del 212% rispetto al 2017 e probabilmente solo una frazione del volume effettivo delle perdite di criptovaluta a livello mondiale a causa della frode.

"L'hacking negli scambi di criptovaluta è il più grande gioco rubabandiera al mondo", afferma Graham Jenson, ingegnere infrastrutturale senior presso Coinbase, un portafoglio e una piattaforma di valute digitali con 30 milioni di clienti in tutto il mondo e scambi per un totale di 220 miliardi di dollari. "Essendo una delle piattaforme di scambio di valuta più grandi, Coinbase è anche uno dei maggiori bersagli".

Perseguendo l'obiettivo di operare come centro affidabile, sicuro e legale della cripto-economia, Coinbase si impegna a mantenere gli standard più alti in termini di sicurezza, conformità, tecnologia, servizio clienti, design e altro ancora. Questo è il motivo per cui Coinbase utilizza Amazon Web Services (AWS) come provider di infrastruttura principale dal 2015 e perché ha recentemente incorporato ulteriori tecnologie AWS nell'ambito del miglioramento dei processi di distribuzione del software.

Per proteggere i propri clienti dagli attacchi, gli ingegneri di Coinbase devono essere in grado di distribuire in modo rapido, affidabile e sicuro aggiornamenti e nuove funzionalità per tutti i sistemi aziendali, con alcune distribuzioni software che richiedono 20 ore o più per il completamento. Per semplificare e rafforzare questi processi, Coinbase ha utilizzato AWS Step Functions e AWS Lambda per creare un framework comune e riutilizzabile per quello che era stato un portfolio ad hoc di deployer. (AWS Lambda è una piattaforma serverless che esegue codice in risposta a eventi e AWS Step Functions coordina più servizi AWS in flussi di lavoro serverless.)

"Grazie all'utilizzo di AWS Step Functions e AWS Lambda abbiamo aumentato il nostro tasso di distribuzioni mission critical di successo dal 90 al 97 percento", afferma Jenson.

"Abbiamo assistito a una riduzione significativa dei ticket di supporto. Ciò è dovuto alla visibilità che AWS Step Functions offre ai nostri ingegneri".

Graham Jenson, Senior Infrastructure Engineer, Coinbase

  • Informazioni su Coinbase
  • Vantaggi
  • Servizi AWS utilizzati
  • Informazioni su Coinbase
  • Coinbase è un portafoglio e una piattaforma di valuta digitale con sede a San Francisco. L'azienda ha 30 milioni di clienti e ha supportato scambi di oltre 220 miliardi di dollari in valute digitali come bitcoin, ethereum e litecoin.

  • Vantaggi
    • Tasso di distribuzioni riuscite aumentato dal 90 al 97%
    • Tempo necessario per aggiungere nuovi account AWS diminuito da giorni a secondi
    • Significativo aumento del numero di ticket risolti
  • Servizi AWS utilizzati

AWS Step Functions: "Esattamente quello che mi serviva"

Nella sua ricerca di modi per rafforzare ulteriormente la sicurezza in Coinbase, Jenson ha identificato un'opportunità per migliorare le pipeline di distribuzione automatizzata dell'azienda. "Avevamo più deployer, ciascuno con interfacce e complessità diverse", afferma Jenson. "Volevo un framework comune che ci consentisse di creare rapidamente deployer in grado di convalidare l'input degli utenti, rilasciare in modo sicuro il codice ad AWS e non dover pesare sui nostri ingegneri".

Durante la ricerca di soluzioni, Jenson ha appreso di AWS Step Functions. "Non appena ho esaminato la documentazione, mi sono reso conto che Step Functions era esattamente ciò che mi serviva", dichiara Jenson. "Step Functions può mantenere lo stato fino a un anno, è altamente scalabile e semplifica la descrizione di come gestire e riprovare automaticamente dopo errori specifici".

La scelta di creare la sua nuova classe di deployer con un framework basato su AWS Lambda e AWS Step Functions e l'utilizzo di AWS Identity and Access Management (AWS IAM) e Amazon Simple Storage Service (Amazon S3) inseriscono Coinbase su un percorso veloce verso l'implementazione, con solo una breve curva di apprendimento iniziale. Il primo deployer creato dal team di Jenson, un deployer AWS open source chiamato Odin, prende una descrizione di una versione del progetto e la lancia in modo sicuro e protetto in AWS utilizzando i gruppi Auto Scaling di Amazon Elastic Compute Cloud (Amazon EC2).

"Dall'idea all'implementazione operativa e fino alla migrazione di Odin nella soluzione, tutto sommato, sono passati sei mesi dall'ideazione alla produzione", aggiunge Jenson. "Ma poiché possiamo riutilizzare il codice e il framework su cui si basa Odin, ci sono volute solo poche settimane per mettere in produzione i nostri successivi due deployer. Da qui in avanti diventerà solo più veloce".

Architettura semplificata con Step Functions

Il nuovo approccio ha ridotto sostanzialmente la complessità dell'architettura di Coinbase, che a sua volta ha migliorato la visibilità per il team di Jenson.

"I nostri precedenti deployer avevano tutti diversi web hook, callback, layout Amazon S3, bucket e ruoli AWS IAM e utilizzavano diversi mezzi di comunicazione e polling. È stato davvero difficile ottenere la visibilità che ci serviva", continua Jenson. "Ora, con tutti i nostri deployer basati sulla stessa base AWS Lambda e AWS Step Functions, operiamo e interagiamo con essi allo stesso modo. Possiamo effettivamente osservare il flusso di dati attraverso Step Function, identificare i guasti lungo determinati percorsi e agire per risolverli".

Questa semplicità accelera il processo di aggiunta di account AWS e migliora la sicurezza. "Utilizzando AWS Lambda con IAM assume role, possiamo integrare un account AWS con un singolo ruolo AWS IAM, invece di un intero servizio con la propria configurazione individuale", afferma Jenson. "Con AWS Lambda e AWS IAM, abbiamo ridotto il tempo necessario per aggiungere nuovi account AWS da giorni a secondi".

La nuova soluzione semplifica inoltre la verificabilità. "Possiamo abilitare più account che passano attraverso una singola Step Function, che ci fornisce un unico audit trail per tutte le distribuzioni", afferma Jenson. "In questo modo è facile capire cosa è successo in tutti gli account e ci consente di abilitare nuovi account con elevata sicurezza senza dover re-implementare l'audit trail".

Consentendo agli ingegneri di superare gli ostacoli in modo indipendente, la soluzione riduce anche le richieste al team dell'infrastruttura. "Abbiamo assistito a una riduzione significativa dei ticket di supporto per le distribuzioni non riuscite", ribadisce Jenson. "Ciò è dovuto alla visibilità che AWS Step Functions offre ai nostri ingegneri per consentire loro di diagnosticare e risolvere i propri problemi".

Tutti questi vantaggi tecnici interni integrano una maggiore sicurezza e una risposta più rapida alle richieste dei clienti. "Con i deployer basati su AWS Step Functions e AWS Lambda, i nostri ingegneri possono spostare il codice in produzione in sicurezza", aggiunge Jenson. "Il risultato è che possiamo rilasciare nuove funzionalità più spesso, rispondere più rapidamente alle minacce alla sicurezza e realizzare più facilmente i nostri contratti sul livello di servizio (SLA, Service Level Agreement). Ciò si aggiunge a un'esperienza del cliente ancora migliore e più sicura".


Ulteriori informazioni

Ulteriori informazioni su AWS Step Functions.