TL; DR : Chaos Monkey a été développé en 2010 chez Netflix et sorti dans la nature en 2012 fait partie de l' armée simienne , très populaire parmi les adeptes dévoués . Construite sur les principes de l' ingénierie du chaos , l'armée augmente la résilience à l'échec en injectant une défaillance constante dans le système.
Concept
Chaos Monkey a été développé spécifiquement pour AWS où il tuera au hasard des instances au sein d'un groupe Auto Scaling. Il est conçu pour fonctionner pendant les heures ouvrables lorsque les ingénieurs sont alertes et peuvent réagir rapidement aux pannes découvertes.
Armée Simienne
Les membres de l'armée semeraient le chaos par d'autres moyens:
D'autres singes sont utiles et éliminent les membres faibles du troupeau:
Conformity Monkey arrête les instances qui ne respectent pas les meilleures pratiques.
Security Monkey recherche les failles de sécurité connues dans la configuration et les services.
Doctor Monkey arrête les instances malsaines non conformes à certaines mesures.
Janitor Monkey recherche les ressources inutilisées à récupérer.
L'échec est inévitable
L'échec du système est inévitable, quelque chose ira toujours mal . Vous ne pourrez peut-être pas choisir quoi, mais vous pouvez essayer de choisir quand. En introduisant de petites erreurs tout au long de la journée, vous vous assurez que vos ingénieurs sont présents. En éliminant rapidement les services non conformes, vous vous assurez que les pannes se produisent souvent avant le déploiement. En rendant l'environnement plus hostile, vous vous assurez que ce seront les développeurs qui rencontreront des problèmes bien avant qu'un service ne soit mis en production. Les échecs seront rapidement apparents dans la phase d'intégration des nouveaux services avec les anciens, mais c'est correct, car les anciens services de production sont déjà résistants.
Bovins et non animaux de compagnie
Tout le monde vous le dira récemment: ne traitez pas vos serveurs comme des animaux de compagnie . Il y a une puissance en nombre et tout point de défaillance unique fera tomber le système. Peu importe à quel point vous pouvez régler et optimiser votre serveur, quel que soit le matériel costaud que vous pouvez obtenir, combien il peut gérer, il ne sera jamais à la hauteur d'un troupeau de petites instances évolutives. Chaos Monkey vous encourage à penser à supprimer tous les points d'échec, car tôt ou tard, le Monkey viendra! Tout le monde échoue et même l'Amazon S3 a connu une panne imprévisible .
Anti-Fragile
Alors, quelle est la théorie et pourquoi ça marche? Nassim Nicholas Taleb dans son livre Antifragile décrit un concept où des systèmes vivants conscients de soi, bénéficieront d'un petit niveau de hasard et deviendront réellement meilleurs face à l'adversité. Ceci est similaire au recuit.
Il décrit également une manière évolutive, où la fragilité des parties d'un système se transforme en antifragilité de l'ensemble . Le transfert se fait à deux niveaux:
Par de petites variations aléatoires - les développeurs apportent des modifications - les plus adaptés à l'environnement survivront et se propageront - réussiront les tests et seront déployés . Cycle de vie du développement standard .
En raison de la défaillance de parties qui ne sont pas capables de résister à un niveau plus élevé de caractère aléatoire dans l'environnement, les parties restantes qui ont pu y résister constituent un système qui dans son ensemble est mieux à même de faire face à un environnement en évolution qu'auparavant. Il s'agit essentiellement de Chaos Monkey .
Des niveaux plus élevés de caractère aléatoire peuvent être résistés en utilisant la deuxième approche.