Confrontée à un environnement de bases de données fragmenté, l’équipe Online Data Stores de Netflix peinait à gérer des lourdeurs opérationnelles liées au déploiement de code personnalisé, de correctifs et de mise à l’échelle de manière manuelle. Pour répondre à ces problématiques, le spécialiste du streaming vidéo est passé d’une architecture basée sur une infrastructure PostgreSQL distribuée et autogérée sur EC2 vers la version PostgreSQL Compatible Edition d’Aurora d’AWS.
La société vient d’annoncer la fin de cette migration avec à la clé des gains de performances et des réductions de coût. Spinnaker, la plateforme de déploiement continu de Netflix, a enregistré une réduction de 50 % de sa latence moyenne, passant de 67,57 ms à 41,70 ms. Le service Policy Engine a quant à lui connu des gains encore plus spectaculaires, avec une latence en baisse de 75 % sur les points de terminaison clés, de 26,72 ms à 6,51 ms. Ces améliorations sont principalement dues à l’architecture d’Aurora qui sépare le calcul du stockage et utilise une approche d'écriture basée sur les logs. Ainsi, la base de données alloue 75% de la mémoire de l’instance aux mémoires tampons partagées, soit nettement plus que les 25 à 40 % habituels pour PostgreSQL standard. Sur le plan financier, Netflix estime à 28% la réduction des coûts par rapport à l’architecture précédente.
Une solution efficace mais pas universelle
Dans un blog, Ammar Khaku, ingénieur logiciel au sein Online Data Stores de Netflix revient sur les bénéfices de la migration. « Nous n'avons plus besoin de créer et de déployer des codes personnalisés sur EC2 avec des correctifs internes liés à la sécurité et aux métriques. Le passage à Aurora PostgreSQL, solution gérée et prête à l'emploi, nous fait nous concentrer sur la logique métier et les modèles d'accès aux données. »
L’expérience de Netflix rejoint celles d’autres grandes entreprises comme Samsung Electronics qui a migré plus d’1,1 milliard d’utilisateurs de base de données Oracle vers Aurora. Les motivations étaient similaires, liées aux coûts de licence et à la flexibilité requise pour les micro-services. Cependant, comme l’indique notre confrère d’InfoQ, Aurora ne doit pas être considéré comme une solution universelle pour l’ensemble des charges de travail. Pour des workflows intensifs, d’autres solutions telles que Cockroach ou TiDB peuvent offrir des vitesses d’ingestion et des coûts de stockage inférieurs à ceux d’Aurora.