Qui est ce Chaos Monkey et pourquoi a-t-il planté mon serveur?

28

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.

Singe du Chaos

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?

Jiri Klouda
la source
12
Il doit y avoir un badge pour la question la plus drôle :)
Richard Slater
Serveur unique? Qu'est-ce que c'est? Pourquoi baseriez-vous votre entreprise sur une œuvre d'art unique au lieu d'une marchandise facilement évolutive et remplaçable lorsqu'elle échoue inévitablement ou cesse d'être louée?
Aucun remboursement Aucun retour
Considérons-nous vraiment que c'est une bonne question pour pré-ensemencer le site? Nous attendons-nous à ce que les ingénieurs installent, configurent et exécutent Chaos Monkey, puis oublient ce que c'est, mais découvrent qu'il fonctionne sur leur réseau et demandent sur Stack Exchange plutôt que de visiter le site officiel? Il y a tellement d'étapes invraisemblables.
Xiong Chiamiov le
2
Évidemment, ce n'est pas une vraie question. C'était une plaisanterie de dépeindre en quelque sorte l'ancien administrateur système, qui a simplement été dépassé par l'industrie. Mais votre critique suppose qu'il y a une seule personne ou même une seule équipe qui s'occupe de l'infrastructure. Très souvent, dans les grandes entreprises, l'infrastructure et les équipes existantes sont laissées en place même pendant leur remplacement. Il est tout à fait plausible qu'une nouvelle équipe ait commencé avec une nouvelle infrastructure et l'installation de Chaos Monkey et que le vieux pet ait simplement été touché à un moment où il était après le succès initial déployé dans toute l'entreprise.
Jiri Klouda
La question évidente est de savoir si vous aviez un tel serveur, alors pourquoi avez-vous configuré Chaos Monkey?
user253751

Réponses:

32

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:

  1. 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 .

  2. 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.

Jiri Klouda
la source
"L'échec est inévitable" - grand mantram!
wogsland
A voté parce que vous avez mentionné Nassim Taleb. Mec super intelligent, et ses idées peuvent être appliquées à pratiquement n'importe quoi.
maplebird
8

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:

  • 10-18 Monkey : détecte les problèmes de configuration et d'exécution dans les instances qui servent des clients dans plusieurs régions.
  • Chaos Kong : simule une panne d'une région amazonienne.

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:

Simian Army se compose de services (Monkeys) dans le cloud pour générer divers types de pannes, détecter des conditions anormales et tester notre capacité à y survivre. L'objectif est de garder notre cloud sûr, sécurisé et hautement disponible. Plus de détails peuvent être trouvés sur ce blog .

Actuellement, les simiens incluent Chaos Monkey , Janitor Monkey et Conformity Monkey .

Reportez-vous au guide de démarrage rapide pour commencer à configurer et à utiliser les singes.

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 .

Pierre.Vriens
la source
Chaos Kong a été renommé Chaos Gorilla, je pense ou l'inverse.
Jiri Klouda
@JiriKlouda, vous semblez confirmer ce que je commençais à me demander. C'est pourquoi j'avais ajouté ma remarque dans ma réponse maintenant aussi.
Pierre.Vriens
2

Un serveur pour les gouverner tous, un serveur pour les trouver,
un serveur pour les amener tous et en cas de panne les lier

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:

Gandalf - Tu vas PAAS

Après un long combat, Frodon le 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:

Tensibai
la source