J'avais un serveur parfait, il était si joli et solide comme le roc et je l'ai donc nommé Petra. Il était parfait à tous points de vue, tout était configuré et réglé correctement, il avait un record de service parfait à 100% et 753 jours de disponibilité. J'ai passé beaucoup de temps et d'efforts à m'assurer qu'il fonctionne si bien. Aucun autre serveur de l'entreprise n'avait été aussi bon. Mais hier soir, ce monstre diabolique a fait planter mon serveur sans raison.
Bien sûr, j'ai été averti à 2h du matin et il m'a fallu jusqu'au matin pour le faire fonctionner et tout configuré et réglé, mais je crains que cela ne soit pas aussi bon qu'avant. Cela pourrait prendre des semaines avant qu'il ne revienne à son ancienne gloire. Maintenant mon temps de disponibilité a disparu, je n'ai même pas trois maigres 9 et qui sait ce que cela va faire pour ma réputation. Qui est ce Chaos Monkey et pourquoi a-t-il fait ça à mon serveur et pourquoi essaie-t-il de me ruiner?
la source
Réponses:
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:
Latency Monkey introduira des retards aléatoires dans les services.
Chaos Gorilla (Kong) simulera une panne de toute la zone de disponibilité.
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.
la source
Quelques ajouts à votre propre réponse à cette question ...
Singes supplémentaires
L'article sur " Comment le chaos augmente les performances " décrit quelques-uns de ces singes, à savoir:
Remarque: Le même article mentionne également "Chaos Gorilla: simule une panne d'une zone de disponibilité d'Amazon", bien qu'il se pourrait bien que cela ait été renommé maintenant en "Chaos Kong: simule une panne d'une région amazonienne" ... Chaos ! Je n'ai pas trouvé de confirmation / docu à ce sujet jusqu'à présent, au moins il ne semble pas y avoir de problème pour cela dans la file d'attente des problèmes . Un changement non documenté aurait pu atteindre la production sur github ... Gggggggrrrrrreat!
Configurez et utilisez vos propres singes.
Rendez-vous sur github pour entrer en contact avec l'armée simienne (même lien que le tout premier lien dans votre propre réponse). Voici une citation de ce que vous y trouverez:
Vous pouvez même configurer les monkyes afin qu'ils correspondent aux besoins de votre entreprise.
Si vous creusez assez profondément dans ces liens Github (c'est-à-dire dans le lien Support ), vous trouverez également un lien pour rejoindre le groupe Google SimianArmy .
la source
Vous, Sauron, avez forgé ce One Server, dans l'obscurité de
Mount Doom,votre Datacenter dans un désir de gouverner toutes les applications.J'espère que la Fellowship of Devops s'est unie pour vous dire:
Après un long combat,
Frodonle Chaos Monkey a réussi à faire fondre votre One Server et à apporter la liberté à toutes les applications, vous conduisant à la voie de serveurs reproductibles en même temps.Crédits:
la source