Netflix exploitait son service de streaming sur AWS, où les défaillances d'instances sont courantes et où les pannes avaient durement frappé le secteur ; plutôt que d'attendre d'être surpris, l'équipe d'ingénierie a décidé de se surprendre elle-même.
L'idée
Casser la production volontairement : Chaos Monkey éteint aléatoirement des instances AWS en production, obligeant les ingénieurs à construire des services qui survivent sans que les clients s'en aperçoivent.
Un petit outil choisit une instance au hasard dans chaque cluster et, pendant les heures ouvrées d'un jour de travail, l'éteint sans prévenir — les ingénieurs restant à l'affût pour observer la réaction du service. Netflix a publié Chaos Monkey en open source en juillet 2012, puis a ajouté Janitor Monkey et Security Monkey à la « Simian Army » ; sa règle affichée : « la meilleure défense contre les défaillances majeures inattendues, c'est d'échouer souvent. »
Chaos Monkey a contraint l'architecture de Netflix à tolérer la perte d'instances sans impact pour les clients et a transformé les exercices de défaillance en routine ; l'outil publié en open source a été couvert par TechCrunch et Wired, Jeff Atwood de Stack Exchange a attribué à la même idée la résolution de ses pannes, et la pratique est devenue la discipline de l'ingénierie du chaos.
Contexte
Netflix exploitait son service de streaming sur AWS, et dans le cloud, les instances défaillent — des hôtes meurent, le réseau hoquette, les répartiteurs de charge se comportent mal. Plutôt que d'attendre qu'une panne révèle les points faibles, l'équipe d'ingénierie a créé Chaos Monkey, un logiciel qui désactive aléatoirement des instances de production pendant les heures ouvrées, tandis que les ingénieurs observaient.
Le nom vient de l'idée de « lâcher un singe sauvage armé dans votre centre de données pour abattre aléatoirement des instances et ronger des câbles — tout en continuant à servir nos clients sans interruption ». L'essentiel n'était pas l'outil lui-même mais le changement d'état d'esprit : si votre système doit survivre à des attaques quotidiennes aléatoires, vous construisez une reprise automatique au lieu d'espérer que rien ne casse.
En juillet 2012, Netflix a publié Chaos Monkey en open source, et l'idée s'est répandue. La couverture de TechCrunch et Wired a fait de « échouer souvent » une devise d'ingénierie connue ; Jeff Atwood de Stack Exchange a déclaré que son équipe n'avait résolu son problème de panne qu'après que « Chaos Monkey les a choisis ». La pratique a ensuite été formalisée sous le nom d'ingénierie du chaos — expérimenter sur des systèmes de production pour acquérir la confiance qu'ils peuvent résister à des conditions turbulentes.
Des défaillances aléatoires et non surveillées pendant les heures de travail transforment des pannes rares et terrifiantes en exercices de routine avec des ingénieurs prêts.
Échouer souvent impose des mécanismes de reprise automatique, de sorte qu'une défaillance à 3 h du matin cesse d'être une crise.
La publication en open source a donné de l'élan à l'idée — d'autres entreprises ont adopté la pratique, qui est devenue une discipline.
Le nom a rendu le concept inoubliable, ce qui explique la rapidité de sa diffusion.
N'attendez pas la panne que vous ne pouvez pas prévoir : provoquez de petites défaillances pendant la journée, sous l'œil des ingénieurs, afin que le système — et l'équipe — apprennent la résilience avant qu'un désastre à 3 h du matin ne la leur enseigne.
Netflix a continué d'étendre l'idée : Latency Monkey, Doctor Monkey, Chaos Kong pour des zones de disponibilité entières, puis la Chaos Automation Platform, avec une équipe dédiée à l'ingénierie du chaos formée en 2015. Le dépôt original de la Simian Army a été retiré en 2021, remplacé par des outils autonomes, mais la pratique a dépassé Netflix — l'ingénierie du chaos est devenue une discipline industrielle avec des livres, des conférences, des outils commerciaux et des adoptants comme Capital One.
VÉRIFIEZ LES SOURCES
Les sources
- Netflix/SimianArmy — Tools for keeping your cloud operating in top form Netflix (GitHub) · github.com
- Netflix Open Sources Chaos Monkey — A Tool Designed To Cause Failure So You Can Make A Stronger Cloud TechCrunch · beta.techcrunch.com ·
- Netflix Abuses Amazon With Monkeys. Now You Can Too Wired · wired.com ·
- What is Chaos Monkey? Chaos engineering explained InfoWorld · infoworld.com ·