Photo by CoinView App on Unsplash
Lorsque Coinbase a été lancé en 2012 pour offrir aux utilisateurs la façon la plus simple d'acheter et de vendre du Bitcoin, ses fondateurs craignaient d’arriver après la bataille. A l'époque, le réseau Bitcoin existait déjà depuis 3 ans et les concurrents étaient déjà bien présents et déterminés à conquérir des parts de marché. Aujourd'hui, Coinbase est la suite d'outils et de services la plus fiable et la plus facile à utiliser pour les consommateurs, les investisseurs et les institutions pour acheter, échanger, stocker et utiliser la cryptomonnaie dans plus de 33 pays. Coinbase gère plus de 20 millions de comptes et plus de 220 milliards de dollars d'actifs ont été négociés sur sa plateforme.
Alors, sans avoir les avantages d’un pionnier, comment Coinbase est-il devenu synonyme de cryptomonnaie dans de nombreuses parties du monde ? Les outils que Coinbase utilise, comme MongoDB et Amazon Web Services, ont notamment joué un grand rôle en les aidant à s'adapter à l'afflux de trafic.
La puissance de la flexibilité du modèle de données
Coinbase a commencé comme un portefeuille Bitcoin. Une plateforme de trading a été ajoutée peu de temps après de même que la prise en charge de plusieurs autres cryptomonnaies dont Ethereum, Litecoin, et Bitcoin Cash. Plus tard, des produits ont été lancés pour des traders experts et des investisseurs institutionnels, tels que Coinbase Pro, Coinbase Prime et Coinbase Asset Management. Chaque fois que de nouveaux produits sont ajoutés, le modèle de données documentaire flexible de MongoDB permet à l'équipe de mettre à jour rapidement les structures de données existantes si nécessaire.
Aujourd'hui, Coinbase utilise MongoDB pour alimenter ses systèmes d'engagement et permettre de mener à bien toutes les actions et les ’événements d’un utilisateur qui se produisent au cours d'une session utilisateur classique, tout comme les systèmes d'enregistrement stockant les identités des utilisateurs, les informations de compte, les transactions, les méthodes de paiement, etc. ou encore les systèmes d'information utilisés pour soutenir et améliorer l'expérience globale du client.
Le modèle de données de MongoDB accélère également le développement chez Coinbase. L'utilisation de MongoDB supprime le décalage d'impédance objet-relationnel généralement associé à l'exploitation des bases de données tabulaires dans les environnements de développement modernes, et se traduit par des ingénieurs plus productifs et satisfaits.
Ne vous faites pas pirater
Depuis 2011, il y a eu plus de 50 attaques ciblant les échanges de cryptomonnaies, les ICO et d'autres plateformes de monnaie numérique. Des piratages de cryptomonnaies de premier plan comme l'attaque de la bourse du mont Gox en 2014 - qui a conduit à la disparition de 7 % de l'approvisionnement mondial en Bitcoin - ont non seulement eu des répercussions sur les clients, mais aussi sur la trajectoire de l'adoption des actifs numériques.
MongoDB aide l'équipe de Coinbase à relever les défis de sécurité en fournissant un ensemble de contrôles de sécurité performants au niveau de la couche de données, y compris le chiffrement de bout en bout. La flexibilité de la base de données permet également une intégration rapide avec les fournisseurs de sécurité tiers ; par exemple, Coinbase a pu intégrer un nouveau service de gestion des identités dans sa plate-forme en moins de 2 semaines pour mieux se protéger contre la fraude.
Construire des systèmes fiables pour faire face à la Crypto Mania
Au milieu de l'année 2017, l'intérêt du public pour les actifs numériques a explosé, en partie à cause de la flambée des prix de l'Ethereum. Avant l'augmentation correspondante des volumes de transactions, la plate-forme de Coinbase a connu des modèles de trafic étonnamment constants, avec une moyenne de 15 000 requêtes API par minute (RPM). À l'époque, l'équipe a estimé que le seuil supérieur auquel elle s'attendrait à ce que sa plate-forme connaisse des problèmes, sa zone rouge, était de 100 000 requêtes par minute, soit environ 6 à 7 fois sa charge typique. Mais aux alentours de juin 2017, la circulation a largement franchi ce seuil du jour au lendemain.
L'équipe d'ingénierie a réagi de la même manière, en faisant de la construction de systèmes fiables une priorité tout aussi stratégique que la lutte contre le piratage. Voici quelques-unes des mesures prises par l'équipe de Coinbase pour répondre à la demande croissante.
L'équipe a opté pour des versions plus récentes de MongoDB, notamment en passant au moteur de stockage WiredTiger et en tirant parti du contrôle de la simultanéité au niveau des documents.
Les charges de travail analytiques ont été transférées dans des répliques secondaires afin d'alléger les tâches primaires de lecture et d'écriture. Des stratégies de surveillance avancées ont été mises en œuvre, ce qui a permis d'identifier une faille dans un algorithme de relevé d'empreintes digitales.
Après ces changements, la ligne rouge a été déplacée à 200 000 requêtes par minute, mais la demande n'a fait qu'augmenter. Leur travail n'était pas terminé.
L'équipe a identifié un haut débit de lecture sur certaines collections et, étant sous le canon, a rapidement mis en place une couche de recouvrement des requêtes dans Memcached écrite au niveau de l'ORM et du pilote. Cela leur a permis de déployer simultanément le cache de requêtes sur plusieurs clusters confrontés à des problèmes. La ligne rouge s'est à nouveau déplacée, cette fois-ci à 400 000 requêtes par minute.
Par la suite, Coinbase s'est lancée dans la mise à l'échelle et la séparation de ses clusters MongoDB par le biais d'une approche axée sur les données qui consistait à évaluer toutes les requêtes et à s'assurer qu'elles transmettaient correctement les clés de destruction. Ce changement a eu un impact conséquent sur la capacité de gestion du système.
Rétrospectivement, l'"explosion" au milieu de l’année 2017 n'a été qu'anecdotique comparée à celle de décembre et janvier, lorsque la capitalisation boursière des cryptomonnaies était à son paroxysme et que Coinbase est devenue l'application numéro 1 dans l'App Store. La plate-forme a reçu 1,2 million de demandes par minute (soit 80 fois supérieur à leur volume moyen comparé à 6 mois auparavant !). Cependant, grâce au travail déjà accompli par l'équipe, concernant la mise à niveau, la mise à l'échelle des clusters MongoDB et l'amélioration de la surveillance et des instruments, cela n’a posé aucun problème.
En travaillant en étroite collaboration avec MongoDB, Coinbase a amélioré la vitesse à laquelle ils peuvent évoluer - de quelques heures à quelques minutes – ainsi que la résilience globale de la plate-forme de 10 fois les préparant ainsi mieux pour l'avenir.
Alors, sans avoir les avantages d’un pionnier, comment Coinbase est-il devenu synonyme de cryptomonnaie dans de nombreuses parties du monde ? Les outils que Coinbase utilise, comme MongoDB et Amazon Web Services, ont notamment joué un grand rôle en les aidant à s'adapter à l'afflux de trafic.
La puissance de la flexibilité du modèle de données
Coinbase a commencé comme un portefeuille Bitcoin. Une plateforme de trading a été ajoutée peu de temps après de même que la prise en charge de plusieurs autres cryptomonnaies dont Ethereum, Litecoin, et Bitcoin Cash. Plus tard, des produits ont été lancés pour des traders experts et des investisseurs institutionnels, tels que Coinbase Pro, Coinbase Prime et Coinbase Asset Management. Chaque fois que de nouveaux produits sont ajoutés, le modèle de données documentaire flexible de MongoDB permet à l'équipe de mettre à jour rapidement les structures de données existantes si nécessaire.
Aujourd'hui, Coinbase utilise MongoDB pour alimenter ses systèmes d'engagement et permettre de mener à bien toutes les actions et les ’événements d’un utilisateur qui se produisent au cours d'une session utilisateur classique, tout comme les systèmes d'enregistrement stockant les identités des utilisateurs, les informations de compte, les transactions, les méthodes de paiement, etc. ou encore les systèmes d'information utilisés pour soutenir et améliorer l'expérience globale du client.
Le modèle de données de MongoDB accélère également le développement chez Coinbase. L'utilisation de MongoDB supprime le décalage d'impédance objet-relationnel généralement associé à l'exploitation des bases de données tabulaires dans les environnements de développement modernes, et se traduit par des ingénieurs plus productifs et satisfaits.
Ne vous faites pas pirater
Depuis 2011, il y a eu plus de 50 attaques ciblant les échanges de cryptomonnaies, les ICO et d'autres plateformes de monnaie numérique. Des piratages de cryptomonnaies de premier plan comme l'attaque de la bourse du mont Gox en 2014 - qui a conduit à la disparition de 7 % de l'approvisionnement mondial en Bitcoin - ont non seulement eu des répercussions sur les clients, mais aussi sur la trajectoire de l'adoption des actifs numériques.
MongoDB aide l'équipe de Coinbase à relever les défis de sécurité en fournissant un ensemble de contrôles de sécurité performants au niveau de la couche de données, y compris le chiffrement de bout en bout. La flexibilité de la base de données permet également une intégration rapide avec les fournisseurs de sécurité tiers ; par exemple, Coinbase a pu intégrer un nouveau service de gestion des identités dans sa plate-forme en moins de 2 semaines pour mieux se protéger contre la fraude.
Construire des systèmes fiables pour faire face à la Crypto Mania
Au milieu de l'année 2017, l'intérêt du public pour les actifs numériques a explosé, en partie à cause de la flambée des prix de l'Ethereum. Avant l'augmentation correspondante des volumes de transactions, la plate-forme de Coinbase a connu des modèles de trafic étonnamment constants, avec une moyenne de 15 000 requêtes API par minute (RPM). À l'époque, l'équipe a estimé que le seuil supérieur auquel elle s'attendrait à ce que sa plate-forme connaisse des problèmes, sa zone rouge, était de 100 000 requêtes par minute, soit environ 6 à 7 fois sa charge typique. Mais aux alentours de juin 2017, la circulation a largement franchi ce seuil du jour au lendemain.
L'équipe d'ingénierie a réagi de la même manière, en faisant de la construction de systèmes fiables une priorité tout aussi stratégique que la lutte contre le piratage. Voici quelques-unes des mesures prises par l'équipe de Coinbase pour répondre à la demande croissante.
L'équipe a opté pour des versions plus récentes de MongoDB, notamment en passant au moteur de stockage WiredTiger et en tirant parti du contrôle de la simultanéité au niveau des documents.
Les charges de travail analytiques ont été transférées dans des répliques secondaires afin d'alléger les tâches primaires de lecture et d'écriture. Des stratégies de surveillance avancées ont été mises en œuvre, ce qui a permis d'identifier une faille dans un algorithme de relevé d'empreintes digitales.
Après ces changements, la ligne rouge a été déplacée à 200 000 requêtes par minute, mais la demande n'a fait qu'augmenter. Leur travail n'était pas terminé.
L'équipe a identifié un haut débit de lecture sur certaines collections et, étant sous le canon, a rapidement mis en place une couche de recouvrement des requêtes dans Memcached écrite au niveau de l'ORM et du pilote. Cela leur a permis de déployer simultanément le cache de requêtes sur plusieurs clusters confrontés à des problèmes. La ligne rouge s'est à nouveau déplacée, cette fois-ci à 400 000 requêtes par minute.
Par la suite, Coinbase s'est lancée dans la mise à l'échelle et la séparation de ses clusters MongoDB par le biais d'une approche axée sur les données qui consistait à évaluer toutes les requêtes et à s'assurer qu'elles transmettaient correctement les clés de destruction. Ce changement a eu un impact conséquent sur la capacité de gestion du système.
Rétrospectivement, l'"explosion" au milieu de l’année 2017 n'a été qu'anecdotique comparée à celle de décembre et janvier, lorsque la capitalisation boursière des cryptomonnaies était à son paroxysme et que Coinbase est devenue l'application numéro 1 dans l'App Store. La plate-forme a reçu 1,2 million de demandes par minute (soit 80 fois supérieur à leur volume moyen comparé à 6 mois auparavant !). Cependant, grâce au travail déjà accompli par l'équipe, concernant la mise à niveau, la mise à l'échelle des clusters MongoDB et l'amélioration de la surveillance et des instruments, cela n’a posé aucun problème.
En travaillant en étroite collaboration avec MongoDB, Coinbase a amélioré la vitesse à laquelle ils peuvent évoluer - de quelques heures à quelques minutes – ainsi que la résilience globale de la plate-forme de 10 fois les préparant ainsi mieux pour l'avenir.
Autres articles
-
MongoDB annonce la version 8.0 de sa plateforme, offrant une meilleure performance globale et protection des données
-
Iron Mountain fait confiance à MongoDB pour fournir à ses clients des expériences numériques personnalisables afin de gérer leurs informations physiques et numériques
-
MongoDB renforce son engagement en matière de sécurité et de conformité avec l'obtention de nouvelles certifications industrielles
-
MongoDB étend sa collaboration avec Google Cloud pour aider ses clients à déployer et à mettre à l’échelle de nouvelles catégories d’applications
-
Rivery permet de répliquer des données de MongoDB vers Snowflake