- PagerDuty /
- Blog /
- Non classé /
- Injecter de l'échec chez Netflix, rester fiable pour plus de 40 millions de clients
Blog
Injecter de l'échec chez Netflix, rester fiable pour plus de 40 millions de clients
Corey Bertram, ingénieur en fiabilité des sites chez Netflix, a récemment pris la parole. à un groupe DevOps Meetup Chez PagerDuty , Corey a évoqué la stratégie de provoquer des échecs chez Netflix. Il voulait montrer ce qui pouvait mal tourner, car tout peut mal tourner, et tournera mal. Favoriser le chaos et provoquer des échecs s'est avéré un excellent moyen de garantir le fonctionnement continu de Netflix pour ses plus de 40 millions d'abonnés.
Chargé de la disponibilité et de la fiabilité de Netflix, Corey a déclaré :
« Je passe beaucoup de temps à réfléchir à comment faire tomber Netflix. »
Selon Corey, en intégrant l'échec dans ses systèmes de production, Netflix a pu améliorer considérablement la manière dont il parvient à l'échec.
La culture de liberté et de responsabilité de Netflix est rare, surtout pour une grande entreprise. Chaque développeur y est libre de faire ce qu'il juge le mieux pour Netflix. Leurs quelque 1 000 ingénieurs sont encouragés à innover et à résoudre les problèmes, ce qui permet à tout de se développer de manière organique. C'est pourquoi Netflix n'a pas d'équipe d'exploitation : chaque ingénieur est responsable de ses propres services, de la conception à la production.
Corey reconnaît que cela crée un environnement hostile pour les ingénieurs, où chaque incident est unique et où personne ne maîtrise l'ensemble du système. Mais lorsqu'on leur donne carte blanche, ils se surpassent. Ils n'hésitent pas à relever les défis et trouvent des solutions à des problèmes inédits.
Netflix possède des centaines de bases de données et des centaines de services en production, ce qui rend nécessaire l'introduction fréquente de pannes dans son système pour assurer son succès et sa croissance continus.
« Personne ne sait comment fonctionne Netflix. Je le dis en toute sincérité. Plus personne ne comprend comment ce système fonctionne de bout en bout. C'est un phénomène colossal. »
Adopter une approche différente en matière de défaillance et de fiabilité
Chez Netflix, les déploiements sont continus, 24 h/24 et 7 j/7. Par conséquent, tout incident peut survenir à tout moment sur leurs dizaines de milliers d'instances. C'est pourquoi ils ont décidé de se concentrer sur les clusters plutôt que sur les incidents individuels. Selon Corey, il est plus facile de restaurer un millier de services que d'un seul, ce qui permet d'identifier les tendances.
Corey admet que Netflix ne réalise pas de tests. Il est impossible de reproduire à l'identique l'environnement de production dans un environnement de test. Cependant, cela ne signifie pas qu'aucun test n'est effectué, mais leurs environnements de test ne représentent qu'une infime partie de ce qui se passe en production. Lors du déploiement des services, ils sont confrontés à un environnement de production totalement différent, dû aux conditions spécifiques qui y règnent.
« Du point de vue de la fiabilité, nous nous laissons porter par les événements. »
Faute d'environnement de test, Netflix a tout automatisé et créé l'armée simienne.
Injectez l'échec… mais ne cassez pas Netflix
Chez Netflix, la fiabilité est assurée par l'automatisation continue des tests des systèmes de production. En les soumettant à des tests rigoureux, l'entreprise vérifie leur robustesse. Mais pour inculquer cette exigence de fiabilité, il a fallu convaincre les équipes en interne. C'est pourquoi Netflix a décidé de créer une marque, de promouvoir et d'encourager l'utilisation de son processus, la « Simian Army ».
Commencez petit. Identifiez les victoires faciles et restez simple en vous concentrant sur les opportunités les plus évidentes. D'après Corey, ce sont justement ces victoires faciles qui vous coûteront cher si vous les négligez. Ne vous perdez pas dans la création de centaines de scénarios de test.
Consignez tout Certains disent que Netflix est une entreprise de suivi des données qui, par hasard, diffuse des vidéos en streaming, car elle enregistre chaque action client afin de comprendre ce qui fonctionne et ce qui ne fonctionne pas. Impossible de réussir sans analyse : il faut donc tout consigner. Enregistrez toutes vos données : indicateurs, graphiques, alertes, absolument tout. Pour évoluer, vous devrez investir massivement dans votre infrastructure d'analyse.
Tests de fiabilité à l'échelle de la zone. Un excellent moyen de tester votre capacité à gérer une panne de zone. Netflix conçoit ses infrastructures par trois, ce qui lui permet de résister aux pannes de zone. Pour Netflix, Chaos Gorilla automatise la redirection du trafic, gère sa capacité de charge, puis rétablit le service de manière irréversible.
Conseil : Si vous utilisez Amazon, Corey recommande d’utiliser l’équilibrage de charge asymétrique pour éviter de concentrer un trafic important sur une seule zone encore opérationnelle après une panne.
Autorisez le désabonnement, mais encouragez l'inscription. Vous ne souhaitez sans doute pas que tous vos services soient hors service, car cela pourrait entraîner des retards ou la perte de plusieurs semaines de travail. Vous voulez établir une relation de confiance avec vos développeurs, et non les mettre à mal en détruisant leur travail.
Mettez en place une salle de crise (elles sont essentielles). Lors de la mise en œuvre de l'automatisation des interventions en cas de panne, la présence d'un représentant de chaque équipe est essentielle. On ne sait jamais comment le système réagira à une panne. Réunir tous les acteurs pour surveiller le service dont ils sont responsables facilitera la réaction et la mise en œuvre des enseignements tirés.
Répétez. Souvent. Actuellement, Netflix exécute ses automatisations de gestion des pannes trimestriellement. L'adoption d'une fréquence bimensuelle est en cours. Ce processus n'est ni simple ni facile, mais il est indispensable pour assurer la croissance et la fiabilité du service.
Corey résume la situation en disant que si l'on souhaite améliorer la fiabilité, il est impératif de ne pas entreprendre cette tâche seul, sous peine d'échec. S'il est toujours nécessaire de trouver un équilibre entre fiabilité, coût et innovation, il nous rappelle qu'il est encore plus essentiel de privilégier la simplicité.