Coinbase utilise AWS Step Functions pour déployer en toute sécurité vers AWS en quelques secondes

600x400_Coinbase_Logo resize

Les cryptomonnaies fournissent un accès décentralisé à des fonds et permettent des transactions assimilables à des transactions en espèces ne pouvant pas être reversées par quelqu'un d'autre que la partie recevant les fonds. Ces caractéristiques participent à la popularité montante des cryptomonnaies, pas seulement parmi les investisseurs honnêtes, mais aussi parmi les participants malintentionnés, dont la motivation et les opportunités pour le vol de cryptomonnaies deviennent plus fréquentes. Les rapports de vols de cryptomonnaie de l'Internet Crime Complaint Center du FBI (IC3) ont atteint 182 millions en 2018, une augmentation de 212 % par rapport à 2017 et probablement juste une fraction du volume réel de pertes liées aux escroqueries de cryptomonnaie à l'échelle mondiale.

« Le piratage des échanges de cryptomonnaie est l'escroquerie la plus attractive du monde, » explique Graham Jenson, un ingénieur en chef des infrastructures chez Coinbase, un porte-monnaie numérique, une plateforme avec 30 millions de clients à l'international et des transactions atteignant 220 milliards. « Comme elle représente l'un des échanges les plus importants, Coinbase est également l'une des cibles principales. »

Avec pour objectif de fonctionner comme un centre de crypto-économie fiable, sécurisé et légal, Coinbase s'efforce d'atteindre un niveau mondial en sécurité, conformité, technologie, service clientèle, conception, et plus encore. C'est pourquoi Coinbase a utilisé Amazon Web Services (AWS) comme son fournisseur d'infrastructure principal depuis 2015, et pourquoi elle a récemment incorporé des technologies AWS supplémentaires dans le cadre de l'amélioration du processus de déploiement de ses logiciels.

Afin de protéger ses clients des attaques, les ingénieurs de Coinbase doivent pouvoir déployer rapidement et de façon fiable et sécurisée des mises à jour et de nouvelles fonctionnalités pour tous les systèmes d'entreprise (et certains déploiements ont besoin de 20 heures ou plus). Pour simplifier et renforcer ces processus, Coinbase a utilisé AWS Step Functions et AWS Lambda pour concevoir un cadre courant et réutilisable à l'intention de ce qui était jusqu'alors un portfolio ad hoc d'instances de déploiement. (AWS Lambda est une plateforme sans serveur qui exécute des codes en réaction à des événements, et AWS Step Functions coordonne plusieurs services AWS en flux de travail sans serveur.)

« L'utilisation d'AWS Step Functions et d'AWS Lambda a augmenté notre taux de déploiements stratégiques réussis de 90 à 97 %, » affirme G. Jenson.

« Nous avons remarqué une réduction importante des tickets d'incident. Cela est dû à la visibilité qu'AWS Step Functions apporte à nos ingénieurs. »

Graham Jenson, ingénieur en chef des infrastructures, Coinbase

  • À propos de Coinbase
  • Avantages
  • Services AWS utilisés
  • À propos de Coinbase
  • Coinbase est un porte-monnaie numérique et une plateforme basée à San Francisco. L'entreprise a 30 millions de clients et a pris en charge des transactions de plus de 220 milliards de monnaies numériques telles que le bitcoin, l'ethereum et le litecoin.

  • Avantages
    • Taux de déploiements réussis augmenté de 90 à 97 %
    • Réduction du temps nécessaire à l'ajout de nouveaux comptes AWS en secondes plutôt qu'en jours
    • Augmentation importante du nombre de tickets résolus
  • Services AWS utilisés

AWS Step Functions : « exactement ce dont j'avais besoin »

Au cours de ses recherches pour de nouvelles façons de renforcer la sécurité chez Coinbase, G. Jenson a identifié une opportunité d'améliorer les pipelines de déploiement automatisées. « Nous avions plusieurs instances de déploiement, chacune avec ses propres interfaces et complexités, » explique G. Jenson. « Je voulais un cadre courant qui nous permettrait de concevoir rapidement des instances de déploiement capables de valider les entrées utilisateur, envoyer en toute sécurité du code vers AWS et ne pas gêner nos ingénieurs. »

Au cours de ses recherches de solutions, G. Jenson a entendu parler d'AWS Step Functions. « Dès que j'ai examiné les documents, j'ai compris que Step Functions était exactement ce dont j'avais besoin », raconte G. Jenson. « Step Functions peut conserver les états jusqu'à un an, est hautement évolutif et facilite la description pour traiter et réessayer automatiquement après des erreurs spécifiques. »

Le fait de choisir de concevoir sa nouvelle classe d'instances de déploiement avec un cadre basé sur AWS Lambda et AWS Step Functions, et d'utiliser AWS Identity and Access Management (AWS IAM) et Amazon Simple Storage Service (Amazon S3), a envoyé Coinbase directement vers la mise en œuvre, avec juste une brève courbe d'apprentissage initiale. La première instance de déploiement conçue par l'équipe de G. Jenson, une instance de déploiement AWS en open source appelée Odin, prend une description d'une version d'un projet et le lance en toute sécurité dans AWS à l'aide des groupes Auto Scaling d'Amazon Elastic Compute Cloud (Amazon EC2).

« Entre l'idée de la mise en œuvre du fonctionnement d'Odin et sa migration vers la solution, il ne s'est passé que 6 mois de la conception à la production », dit G. Jenson. « Mais comme nous pouvons réutiliser le code et le cadre avec lesquels Odin est conçu, il ne nous a fallu que quelques semaines pour lancer la production de nos deux prochaines instances de déploiement. À partir de maintenant, les choses vont uniquement s'accélérer. »

Architecture simplifiée avec Step Functions

Cette nouvelle approche a considérablement réduit la complexité de l'architecture de Coinbase, qui à son tour améliore la visibilité pour l'équipe de G. Jenson.

« Nos instances de déploiement précédentes avaient toutes des hooks Web, rappels, configurations Amazon S3, compartiments et rôles IAM AWS différents, et utilisaient différents moyens de communication et d'interrogation. Obtenir la visibilité dont nous avions besoin était très difficile », raconte G. Jenson. « Aujourd'hui, avec toutes nos instances de déploiement sur la même base AWS Lambda et AWS Step Functions, nous exploitons et interagissons avec chacune d'entre elles de la même façon. Nous pouvons même observer le flux des données dans Step Function, identifier des échecs sur des chemins spécifiques et prendre des mesures pour les résoudre. »

Cette simplicité accélère le processus d'ajout de comptes AWS et améliore la sécurité. « En utilisant AWS Lambda avec le rôle IAM endossé par AWS, nous pouvons intégrer un compte AWS avec un rôle IAM AWS unique, contrairement à un service complet avec sa propre configuration individuelle », explique G. Jenson. « Avec AWS Lambda et AWS IAM, nous avons réduit le délai nécessaire à l'ajout de nouveaux comptes AWS en secondes plutôt qu'en jours. »

Cette nouvelle solution simplifie également les audits. « Nous pouvons activer plusieurs comptes avec une seule Step Function, ce qui nous donne une seule piste d'audit pour tous les déploiements », dit G. Jenson. « Cela permet de comprendre plus facilement ce qui s'est passé dans chacun des comptes et nous permet d'activer de nouveaux comptes avec une sécurité élevée sans avoir à remettre en œuvre la piste d'audit. »

En permettant aux ingénieurs de surmonter des obstacles de façon indépendante, la solution réduit également les demandes de l'équipe d'infrastructure. « Nous avons remarqué une réduction importante des tickets d'incident relatifs à des échecs de déploiements », constate G. Jenson. « Cela est dû à la visibilité qu'AWS Step Functions donne à nos ingénieurs pour les laisser diagnostiquer et résoudre leurs propres problèmes. »

Ces bénéfices internes et techniques apportent une meilleure sécurité et une réponse plus rapide aux requêtes des clients. « Avec des instances de déploiement basées sur AWS Step Functions et AWS Lambda, nos ingénieurs peuvent envoyer du code en production en toute sécurité », dit G. Jenson. « Par conséquent, nous sommes en mesure de lancer de nouvelles fonctionnalités plus souvent, de réagir plus rapidement face aux menaces de sécurité et d'obtenir plus facilement nos SLA. Tout ceci apporte une expérience client bien meilleure et plus sécurisée. »


En savoir plus

En savoir plus sur AWS Step Functions.