Aller au contenu principal

Ingénierie du chaos

Objectifs

Cours

Ingénierie du chaos

DevOps

Chaos engineering

L’Ingénierie du Chaos est une discipline de l’expérimentation sur un système distribué afin de renforcer la confiance dans la capacité du système à résister à des conditions turbulentes en production.

https://principlesofchaos.org/fr/

Pourquoi ?

  • Les systèmes sont de plus en plus complexes et distribués.

  • Les composants fonctionnent-ils correctement ensemble ?

  • Trouver les faiblesses de manière proactive.

  • Confiance dans la résilience du système.

Préjugés (fallacies) des systèmes distribués

  • Le réseau est fiable.

  • Le temps de latence est nul.

  • La bande passante est infinie.

  • Le réseau est sécurisé.

  • La topologie ne change jamais.

  • Il n'y a qu'un administrateur.

  • Le coût de transport est nul.

  • Le réseau est homogène.

Comment ?

Expérimenter en 4 étapes :

  1. Définition d'un état normal du système par une sortie mesurable.

  2. Hypothèse que groupe témoin = expérimental.

  3. Expérience en production en variant les dégradations (monde réel).

  4. Analyse des différences entre les deux groupes.

Commencer par des expériences limitées

Automatiser pour lancer les expériences en continu

Historique

  • 1983 - Apple : Monkey génère des inputs (clavier, souris) aléatoires et frénétiques.

  • 2003 - Amazon : GameDay simule régulièrement des pannes en production.

  • 2006 - Google : DiRT similaires à GameDay.

  • 2011 - Netflix : Chaos Monkey tue aléatoirement des instances en production.

Simian Army (Netflix sur AWS)

  • Chaos Monkey : tue aléatoirement des instances en production.

  • Latency Monkey : introduit des délais aléatoires sur le réseau.

  • Conformity Monkey : détecte les instances non conformes aux bonnes pratiques

  • Doctor Monkey : détecte les problèmes de santé des instances.

  • Janitor Monkey : supprime les ressources inutilisées.

  • Security Monkey : Conformity Monkey pour des vulnérabilités de sécurité.

  • 10-18 Monkey : détecte les problèmes de localisation.

  • Chaos Gorilla : Chaos Monkey pour des zones de disponibilité.

Résultats

  • Panne majeur d'AWS en 21 avril 2011 et 24 décembre 2012.

  • Pas d'interruption de service pour Netflix.

Et aujourd'hui ?

  • Design for failure est devenu une bonne pratique.

  • Simian Army n'est plus maintenu depuis 2018.

    • Chaos Monkey subsiste.

  • Chaos Toolkit est développé depuis 2017.

F pour passer en plein écran ou O pour afficher la vue d'ensemble.
Versions sans animation, plein écran, imprimable.

Références