Il y a plus de dix ans, Netflix a pris une décision qui, vue de l’extérieur, semblait totalement irrationnelle : commencer à détruire volontairement sa propre infrastructure de production. Ce n’était ni pour subir des pannes supplémentaires, ni pour éprouver ses ingénieurs, mais parce que l’entreprise avait compris une réalité que partagent aujourd’hui presque toutes les grandes plateformes cloud : les pannes sont inévitables. La vraie question n’a jamais été de savoir si un serveur tomberait en panne, mais ce qu’il se passerait quand cela arriverait.

De cette idée est né Chaos Monkey, sans doute le projet d’ingénierie de la fiabilité le plus influent de l’informatique moderne. Quinze ans plus tard, ses principes restent plus vivants que jamais et ont fini par influencer les services gérés d’AWS, Azure et Google Cloud, ainsi que la conception des applications distribuées.

Le Chaos Engineering en cinq points :

Pendant des années, la haute disponibilité s’est confondue avec l’idée d’infrastructures « qui ne tomberaient jamais ». On sait aujourd’hui que cette prémisse est irréalisable : les disques échouent, les commutateurs cessent de répondre, les bases de données se bloquent, et même les régions cloud peuvent connaître des incidents. Même un logiciel parfaitement développé contient des bogues qui n’apparaissent que dans des conditions très précises. La différence entre une architecture robuste et une architecture fragile ne tient pas à l’évitement de tous ces problèmes, mais à la manière dont le système réagit quand ils surviennent.

Qu’est-ce que le Chaos Engineering ?

Le Chaos Engineering consiste à introduire délibérément des défaillances contrôlées dans un système pour vérifier qu’il continue à fonctionner correctement. Il ne s’agit pas de casser des serveurs pour le plaisir : chaque expérience part d’une hypothèse, par exemple :

« Si nous perdons un nœud Kubernetes, les utilisateurs ne devraient pas remarquer d’interruption. »

Ou encore :

« Si la latence augmente entre deux microservices, l’application doit continuer à répondre grâce aux mécanismes de timeout et de retry. »

La défaillance visée est ensuite provoquée intentionnellement. Si le système continue de fonctionner, l’hypothèse est confirmée ; sinon, le test révèle un problème avant que les clients ne le rencontrent. C’est précisément là toute la valeur du Chaos Engineering.

De la migration vers AWS à la Simian Army

Tout a commencé après la migration de Netflix de son infrastructure traditionnelle vers Amazon Web Services. L’architecture est passée de quelques serveurs à des milliers d’instances réparties, et un problème nouveau est apparu : il n’était plus réaliste de supposer que tous les serveurs resteraient disponibles en permanence. Chaque jour, certains échoueraient forcément.

La solution a été extraordinairement simple : créer un programme qui choisit aléatoirement des machines virtuelles et les éteint pendant la journée de travail. Pourquoi en journée ? Parce que tous les ingénieurs étaient présents et pouvaient repérer immédiatement un problème. Si l’application ne répondait plus, la faute ne revenait pas à Chaos Monkey, mais à l’architecture elle-même.

Netflix a vite découvert que l’interruption de serveurs n’était qu’un type de défaillance parmi d’autres. C’est ainsi qu’est née la Simian Army, une famille d’outils qui simulaient chacun un problème différent :

D’autres « monkeys » sont venus détecter les ressources sous-utilisées, les configurations incorrectes, les problèmes de sécurité, les dépendances inattendues ou les services orphelins. Avec le temps, Netflix a même abandonné le terme « monkey » : l’objectif n’était plus de provoquer des défaillances, mais de mener de véritables expériences scientifiques sur le comportement du système.

De la Simian Army aux plateformes d’expérimentation

Netflix a progressivement remplacé la Simian Army par des plateformes plus sophistiquées, notamment ChAP (Chaos Automation Platform) et FIT (Failure Injection Testing). Plutôt que de lancer des attaques aléatoires, ces outils permettent de définir des expériences précises, du type :

« Que se passe-t-il si le service d’authentification répond deux secondes plus tard ? »

« Comment la perte de 25 % du trafic d’une base de données affecte-t-elle le système ? »

Chaque expérience comporte une hypothèse, des métriques, des critères de succès et des mécanismes automatiques pour l’interrompre en cas d’effets inattendus. C’est le même principe scientifique appliqué à l’infrastructure.

Les idées de Netflix ont eu une influence directe sur l’industrie du cloud. Amazon propose désormais AWS Fault Injection Service (AWS FIS), un service géré qui permet de mener ce type d’expériences sans construire ses propres outils : arrêt d’instances EC2, perte de connectivité, hausse de latence, surcharge CPU, erreurs de stockage, incidents sur Amazon ECS ou EKS, dégradations de bases de données. L’écart avec 2011 est considérable : Netflix avait dû bâtir toute sa plateforme de zéro, alors qu’aujourd’hui n’importe quelle organisation peut commencer en quelques heures, y compris pour des besoins de stockage plus modestes comme ceux couverts par VaultS3, l’alternative S3 auto-hébergée.

Kubernetes et l’infrastructure qui bouge sans cesse

Dans un environnement basé sur des machines virtuelles, les composants changeaient peu. Avec Kubernetes, c’est l’inverse : les pods apparaissent et disparaissent en continu, les conteneurs se recréent, les nœuds entrent et sortent du cluster, et les équilibreurs de charge redécoupent en permanence le trafic. Cette infrastructure par nature dynamique rend le Chaos Engineering encore plus précieux : il ne suffit plus de vérifier qu’une application fonctionne, il faut s’assurer qu’elle continue à fonctionner dans un environnement qui change constamment.

Analyse : ce que l’IA va changer

La prochaine grande étape viendra avec l’intégration de l’intelligence artificielle. De plus en plus de plateformes délègueront des décisions à des systèmes autonomes : équilibrage de charge, autoscaling, attribution des ressources, résolution des incidents, optimisation énergétique. Dans ce contexte, valider le logiciel ne suffira plus : il faudra aussi vérifier comment l’IA réagit face à des données incomplètes, contradictoires ou erronées. Il y a d’ailleurs un parallèle à tracer avec des problèmes de sécurité plus anciens qui refont surface dans le cloud et les API, comme le rappelle récemment l’alerte d’INCIBE sur le Path Traversal : une faiblesse ancienne peut toujours ressurgir dans une architecture moderne si personne ne va la chercher activement. Dans les prochaines années, de nouveaux outils de Chaos Engineering devraient apparaître, spécialement conçus pour valider les agents intelligents.

Comment commencer, sans être Netflix

Il n’est pas nécessaire d’être Netflix pour se lancer. Un bon programme de Chaos Engineering débute souvent par des expérimentations très simples :

HypothèseExpérience
Le service supporte la perte d’un nœudÉteindre une machine virtuelle
Kubernetes répartit correctement les podsDrainer un nœud du cluster
L’application supporte une latence élevéeIntroduire des retards artificiels
La base de données réplique correctementDéconnecter temporairement un nœud secondaire
Les sauvegardes permettent de restaurer le serviceRestaurer périodiquement un environnement complet

L’essentiel est de progresser étape par étape, sans jamais commencer par des scénarios extrêmes, et de mesurer systématiquement chaque résultat.

Perspectives

La résilience ne se prouve pas dans les diagrammes d’architecture, elle se démontre quand l’infrastructure commence à se briser. Le Chaos Engineering a changé la façon de concevoir la haute disponibilité : au lieu de se demander « Est-ce que ça va fonctionner ? », la question est devenue « Que se passera-t-il lorsque ça cessera de fonctionner ? ». C’est probablement la meilleure question que puisse se poser une équipe d’infrastructure à l’ère du cloud, de Kubernetes et de l’intelligence artificielle.

Questions fréquentes

Le Chaos Engineering consiste-t-il à casser des serveurs ?

Non. Ce sont des expériences contrôlées pour vérifier comment un système répond à des défaillances prédéfinies.

Est-ce réservé aux grandes entreprises ?

Pas du tout. Des outils comme AWS Fault Injection Service, LitmusChaos ou Chaos Mesh permettent de commencer même sur de petites infrastructures.

Faut-il réaliser ces expériences en production ?

Oui, mais toujours de manière contrôlée et limitée, avec des mécanismes automatiques pour arrêter l’expérience en cas de risque inattendu.

Pourquoi cela deviendra encore plus crucial avec l’IA ?

Parce que les systèmes autonomes vont prendre des décisions sur des infrastructures complexes. Il faudra vérifier non seulement que le logiciel fonctionne, mais aussi que ces agents réagissent correctement face à de vraies défaillances.