Netflix a récemment annoncé sur son blog d’entreprise, que sa transition vers le cloud est enfin terminée après plus de 7 ans. Netflix a commencé ce voyage en 2008 après qu’un incident majeur de corruption de leurs bases de données l’a empêché de livrer des DVD à ses adhérents.
La corruption de ses bases de données a alerté Netflix sur la vision qu’elle avait de son architecture. Elle s'est éloignée d'une architecture à scalabilité verticale présentant des points critiques de défaillance (Single Point Of Failure) à des systèmes distribués horizontalement scalables dans le Cloud.
Yury Izrailevsky, vice-président, ingénierie plateforme et cloud, décrit pourquoi ils ont choisi d’utiliser Amazon Web Services comme fournisseur : « Nous avons choisi AWS car cela nous fournissait les meilleurs moyens de passer à l'échelle et la palette de services et de fonctionnalités la plus large ».
La route vers le cloud a été longue pour Netflix. Elle s’est d’abord attachée à déployer tous les services auxquels accèdent directement les clients. Elle s’est appuyée sur les régions d’Amazon pour servir ses clients dans 130 pays. Une fois ces services clients migrés, Netflix s’est concentrée sur ses systèmes de paiement et sa gestion de données des employés. Les services restants, utilisés par le service de streaming, ont été éteints dans son data center en janvier 2016.
Entre décembre 2007 et décembre 2015, le chiffre d’affaires de Netflix a été multiplié par 1000 . La capacité de Netflix à intégrer et gérer des nouveaux clients provient de l’effet de levier du cloud, selon Izrailevsky. « Supporter une telle croissance aurait été extrêmement difficile avec nos propres data centers ; nous n’aurions tout simplement pas pu ajouter de nouvelles machines assez rapidement. L’élasticité du cloud nous permet d’ajouter des milliers de machines virtuelles et des pétaoctets de stockage en quelques minutes, ce qui rend une telle expansion possible ».
Non seulement le cloud a permis à Netflix de passer à l'échelle supérieure, mais il lui a aussi permis d’augmenter sa disponibilité. Netflix a connu des patchs douloureux dans les premiers temps, mais après des améliorations, elle approche d’une disponibilité de 99,99% qu’elle s’est fixée. Netflix a été capable d’augmenter sa disponibilité en développant des services très fiables en partant de composants traditionnellement fragiles. Leur réussite tient à la réplication de ses composants sur le cloud.
Afin de tester et valider leur stratégie de réplication, Netflix a implémenté des routines de tests en production en déployant leur Simian Army. Une partie de ces routines comprend l’utilisation d’un Chaos Monkey, qui créé des conditions dans le système qui force des composants à faire défaut. Les points de défaillances sont découverts rapidement et de manière régulière, ce qui permet aux équipes d’ingénieurs d’identifier les problèmes lors d’exercices contrôlés, plutôt que lors d’évènements imprévus.
Bien qu’il ait fallu 7 années à Netflix pour migrer vers le cloud, elle l’a fait de manière méthodique et sans s’appuyer sur une stratégie de portage virtuel (« lift and shift »). Pour bénéficier réellement du cloud, Netflix devait évoluer vers des composants conçus pour le cloud et s’éloigner des problématiques propres aux data centers. Izrailevsky explique : « Nous avons décidé d’avoir une approche purement cloud, en redéveloppant virtuellement toute notre technologie et en changeant drastiquement la manière d’agir de notre société. D’un point de vue architectural, nous avons migré d’une application monolithique vers des centaines de micro-services, et nous avons dénormalisé notre modèle de données en utilisant des bases NoSQL ».