Aller au contenu principal

Ingénierie du chaos

Objectifs​

  • Expliquer l'ingénierie du chaos
  • Expliquer les préjugés des systèmes distribués

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.

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​