Aller au contenu
tests-performanceRechercherCtrl K
Guide5 min de lecture

Le chaos engineering, pour qui fait des tests de performance

Le chaos engineering injecte des pannes pour découvrir les faiblesses qu'on n'avait pas prévues. Ce qu'il apporte à un testeur de performance, ce que Netflix a réellement publié, quels outils existent et quels garde-fous poser.

L’essentiel

  • Une expérience de chaos part d'un état stable mesuré, pose une hypothèse, injecte une panne limitée et cherche l'écart.
  • Netflix simule la perte d'une région par redirection du trafic et vise un impact minimal : dire qu'il peut perdre une région entière sans interruption est plus fort que ce qu'il publie.
  • Les outils savent injecter latence, saturation de disque et décalage d'horloge ; un taux précis d'erreurs HTTP demande souvent un proxy applicatif.
Sommaire
  1. Ce que c'est, et ce que ce n'est pas
  2. Chaos et ISTQB
  3. La différence avec le test de robustesse
  4. Ce que Netflix a réellement publié
  5. Quelles pannes injecter, avec quoi
  6. Les garde-fous, avant toute expérience
  7. Dans une campagne de performance

Un test de robustesse vérifie qu'une panne que vous avez prévue ne casse pas l'application. Le chaos engineering fait l'inverse : il cherche les pannes auxquelles personne n'a pensé. Les deux se complètent, et le second réutilise presque tout l'outillage d'une campagne de performance : un état stable mesuré, une supervision fine, des tirs reproductibles.

Ce que c'est, et ce que ce n'est pas

Le site principlesofchaos.org définit le chaos engineering comme la discipline qui consiste à expérimenter sur un système pour avoir confiance dans sa capacité à résister à des conditions turbulentes en production. Il détaille quatre étapes : définir l'état stable comme une sortie mesurable, supposer qu'il se maintient, introduire des événements du monde réel (un serveur qui tombe, un disque défaillant), puis chercher un écart d'état stable. Le site ajoute des principes avancés : bâtir l'hypothèse sur le comportement de l'état stable, varier les événements, expérimenter en production, automatiser et limiter le rayon d'impact.

Cinq blocs en boucle : définir l'état stable, poser une hypothèse, injecter une panne contrôlée en orange, comparer à l'état stable, corriger puis recommencer.
Une expérience de chaos : cinq temps. Le dernier est la correction, qui est le but de l'exercice.

Ce n'est donc pas du sabotage. Une expérience a une hypothèse, une mesure, un périmètre et une fin. Sans mesure préalable de l'état stable, on provoque une panne et on regarde, ce qui ne prouve rien.

Chaos et ISTQB

Le syllabus de performance de l'ISTQB (2018) ne mentionne ni la résilience ni le chaos (recherche textuelle ; le glossaire en ligne n'a pas été consulté). Microsoft, de son côté, présente Azure Chaos Studio comme un service d'expériences d'injection de pannes contrôlées, distinct des tests de charge. Rangez donc le chaos à côté des tests de performance, pas dedans, et écrivez-le dans votre plan de tests.

La différence avec le test de robustesse

Le test de robustesse, tel que ce guide le décrit, rejoue un scénario de panne choisi à l'avance, avec des exigences précises : arrêter un serveur sur deux et vérifier que l'autre tient. Le chaos varie les pannes, et ce qu'on y cherche, c'est l'écart qu'on n'attendait pas. Le premier valide ce qu'on sait, le second explore. À notre avis, un projet qui n'a jamais joué de test de robustesse n'a rien à gagner à commencer par le chaos.

Ce que Netflix a réellement publié

Le chaos engineering reste associé à Netflix, et les légendes qui l'entourent méritent un tri.

  • Chaos Monkey termine des machines virtuelles et des conteneurs au hasard en production. Son dépôt n'est pas archivé : la dernière version lue, la 2.1.3, date du 6 janvier 2025, et le README demande des applications gérées avec Spinnaker.
  • La « Simian Army », l'ensemble des « singes », a un dépôt archivé depuis décembre 2018, dont le README dit que le projet n'est plus activement maintenu. Selon Gremlin, Latency Monkey n'a jamais été publié et Doctor Monkey n'est pas ouvert.
  • Pour la région : l'article publié en 2016 par l'équipe de Netflix dans IEEE Software explique que l'hypothèse testée est qu'une bascule de trafic vers une région saine a un impact minimal sur le nombre de démarrages de lecture par seconde. Netflix y précise qu'il ne met pas vraiment une région AWS hors ligne, faute de capacité, mais redirige les requêtes comme si elle l'était, lors d'exercices mensuels. L'affirmation « Netflix peut perdre une région entière sans interruption de service » est donc plus forte que ce que Netflix écrit.

Quelles pannes injecter, avec quoi

Les exemples que l'on cite le plus, et ce que les documentations des outils disent lire :

Panne Outils dont la documentation la décrit Nuance
Latence sur un appel (+500 ms) Toxiproxy, Chaos Mesh, LitmusChaos, Gremlin, AWS FIS Toxiproxy agit sur une connexion TCP qui passe par lui ; les autres agissent sur le réseau d'un pod ou d'une machine
Disque rempli à 95 % AWS FIS (95 % par défaut), Gremlin, LitmusChaos Litmus remplit le stockage éphémère du pod en pourcentage de sa limite : elle doit être définie
Horloge décalée Chaos Mesh (TimeChaos), Gremlin Chaos Mesh ne touche que le processus principal du conteneur et ses enfants
10 % de requêtes en échec Toxiproxy, Chaos Mesh Ces outils parlent de connexions et de paquets, pas de requêtes HTTP : pour un taux précis d'erreurs HTTP, il faut un proxy applicatif ou une fonction de la plateforme

Les outils ont aussi des statuts très différents. Au 5 novembre 2026 : LitmusChaos et Chaos Mesh sont des projets incubating de la CNCF, avec des versions publiées en octobre ; Toxiproxy et Chaos Toolkit sont des projets libres maintenus ; Gremlin est une plateforme commerciale ; AWS Fault Injection Service est un service managé AWS ; Azure Chaos Studio est en partie en préversion publique, sans SLA ni usage de production recommandé.

Les garde-fous, avant toute expérience

Le principe de limitation du rayon d'impact est dans les principes du site. En pratique, avant même de penser à la production :

  • une supervision complète est en place, qui montre l'état stable ;
  • le retour arrière a été testé, avec un arrêt d'urgence que tout le monde sait déclencher ;
  • l'astreinte est prévenue et la fenêtre de tir exclut les heures de pointe ;
  • la première expérience est petite, dans un environnement de préproduction : redémarrer un seul serveur.

Ces garde-fous relèvent de la pratique, pas d'une norme. Ajustez-les à votre organisation, mais ne sautez pas l'arrêt d'urgence.

Dans une campagne de performance

Une approche raisonnable consiste à jouer d'abord les tests de charge nominale et de robustesse, puis à reprendre le même tir en y ajoutant une panne : une latence sur un service en aval pendant le plateau, par exemple. Les temps de réponse et les erreurs dans la supervision disent si l'état stable a tenu. Si la réponse est non, la correction commence là.

Rédigé avec l’aide d’une IA, relu et validé par Philippe Naveau.

Sources

Dans la même catégorie.

↑ ↓ choisirEntrée ouvrirÉchap fermer