Introduction
L'entreprise Uber a commis une erreur coûteuse en choisissant d'utiliser DynamoDB comme système de ledger pour ses paiements. Cette erreur a entraîné des coûts excessifs, estimés à 8 millions de dollars. Dans cet article, nous allons analyser les raisons de cet échec et les leçons qui peuvent être tirées de cette expérience.
Contexte Technique
Uber a lancé son nouveau système de paiement en 2017, basé sur DynamoDB. Cependant, le coût de ce système s'est avéré prohibitif en raison du modèle de tarification de DynamoDB, qui facture chaque lecture et chaque écriture. Avec 15 millions de trajets par jour, le coût a rapidement augmenté, atteignant 250 000 dollars par an, juste pour les écritures.
Le système de ledger de Uber a été conçu pour stocker des données pendant une longue période, ce qui a entraîné des coûts de stockage élevés. Les développeurs d'Uber ont tenté de résoudre ce problème en stockant seulement les 12 dernières semaines de données dans DynamoDB et en utilisant un système de stockage d'objets pour les données plus anciennes.
Analyse et Implications
L'erreur d'Uber est due à une mauvaise compréhension des besoins de son système de ledger. DynamoDB est un choix approprié pour les systèmes de paiement, car il offre une haute disponibilité et une faible latence. Cependant, les systèmes de ledger nécessitent une cohérence globale, que DynamoDB ne peut pas offrir.
Les coûts excessifs engagés par Uber pourraient avoir été évités si les développeurs avaient effectué des calculs simples pour estimer les coûts de stockage et de traitement des données. Cette erreur a entraîné des coûts supplémentaires de 8 millions de dollars, qui auraient pu être évités avec une meilleure planification et une meilleure compréhension des besoins du système.
Perspective
Cet incident montre l'importance de bien comprendre les besoins d'un système de ledger et de choisir les outils appropriés pour le développer. Les développeurs doivent effectuer des calculs précis pour estimer les coûts de stockage et de traitement des données, et choisir des outils qui offrent la cohérence et la disponibilité nécessaires.
Uber a finalement migré vers un système de ledger interne, appelé LSG, qui est basé sur un système de base de données distribué appelé DocStore. Cette migration a permis à Uber de réduire ses coûts et d'améliorer la cohérence de ses données.