Zendesk a réduit de plus de 80 % ses coûts de stockage de données grâce à une migration stratégique de DynamoDB vers une combinaison de MySQL et d’Amazon S3. L’escalade des coûts de l’ancien système pousse l’entreprise à rechercher une solution de stockage plus économique et plus évolutive. Grâce à cette réduction significative des coûts, Zendesk assure la viabilité financière et améliore l’efficacité opérationnelle, établissant ainsi une référence pour les entreprises similaires confrontées à des coûts élevés de gestion des données.
Première utilisation de DynamoDB
Zendesk utilise initialement DynamoDB pour stocker les données des flux d’événements, en tirant parti de ses capacités de service de base de données gérée qui offrent une sécurité intégrée, une sauvegarde et une restauration, ainsi qu’une mise en cache en mémoire. Malgré son efficacité initiale, les coûts de maintenance de la plateforme augmentent au fur et à mesure que la base de clients s’élargit. Les capacités d’interrogation avancées, en particulier la nécessité de disposer d’index secondaires globaux (GSI), aggravent ces coûts, rendant le système financièrement intenable.
En réponse à l’augmentation des coûts, Zendesk passe à un modèle de facturation provisionnée, réduisant initialement les dépenses de 50 %. Malgré cette réduction considérable, les exigences croissantes de l’architecture ont rendu la solution non viable, obligeant Zendesk à explorer d’autres options.
Zendesk évalue en permanence plusieurs technologies, notamment S3, Hudi, ElasticSearch et MySQL, à la recherche d’une combinaison de fonctionnalités et de rentabilité. L’équipe écarte Hudi en raison de sa complexité opérationnelle et du délai inacceptable de 24 heures dans la disponibilité des données. De même, ils rejettent ElasticSearch car ses coûts sont équivalents à ceux de DynamoDB, ce qui n’offre aucun avantage financier.
Adoption de MySQL et S3
Après mûre réflexion, Zendesk a opté pour une solution de stockage à plusieurs niveaux impliquant MySQL et S3. MySQL sert de tampon pour les journaux provenant d’Apache Kafka, capturant et stockant les métadonnées, tandis que S3 gère le stockage de données à grande échelle par lots économiques de 10 000 journaux par fichier. Les journaux datant de plus de quatre heures sont systématiquement supprimés de la mémoire tampon de MySQL afin de maintenir l’efficacité et la rentabilité. Cette architecture permet une recherche efficace des données, principalement sur une base chronologique, en optimisant l’équilibre entre l’accessibilité et le coût.
Les requêtes sont initiées par la consultation de la table de métadonnées MySQL, suivie par l’exécution de requêtes S3-Select parallèles basées sur les sorties de métadonnées. Cette configuration permet de réduire considérablement les délais de recherche des données et de rationaliser le processus d’interrogation.
Défis et innovations en matière d’interrogation
Défis en matière de recherche
Shane Hender, Group Tech Lead chez Zendesk, identifie un défi majeur dans le nouveau système : l’interrogation des journaux sur la base de champs non horodatés tels que les identifiants des utilisateurs. Ces requêtes peuvent nécessiter l’analyse de toutes les données S3 pertinentes dans un intervalle de temps donné, ce qui complique le traitement parallèle et nuit aux performances.
Structures de données avancées
Pour répondre efficacement aux défis posés par les requêtes multi-champs, Zendesk intègre des filtres de Bloom et des structures de données Count-Min Sketch. Ces innovations facilitent l’identification des fichiers S3 pertinents pour l’interrogation, ce qui réduit considérablement le besoin de duplication des données et améliore les performances de l’interrogation. Ils stockent des versions sérialisées de ces structures dans une table supplémentaire, ce qui permet de déterminer les fichiers S3 spécifiques à interroger, optimisant ainsi le processus d’interrogation pour plusieurs champs.
Mesures des coûts et des performances après la migration
Après la migration, Zendesk a réduit ses coûts de stockage à moins de 20% des coûts avec DynamoDB provisionné. MySQL, et plus particulièrement AuroraDB, représente aujourd’hui plus de 90 % de ces coûts réduits, tandis que S3 et S3-Select en représentent moins de 10 %. Le système remanié offre des temps de latence entre 200 et 500 millisecondes, avec des pointes occasionnelles de quelques secondes. Zendesk continue d’affiner ces paramètres pour atteindre une efficacité et une rentabilité encore plus grandes, créant ainsi un précédent pour les stratégies de stockage de données optimales dans l’industrie technologique.