Le Chaos Monkey est une technique de test de résilience des infrastructures informatiques inventé par Netflix en 2011 devenu très populaire dans l’univers des devops.
Il n’est pas le premier à avoir pensé à utiliser ce type de technique mais il a clairement participé à sa démocratisation. D’ailleurs, on voir aujourd’hui de nombreux dérivés fleurir dans le monde du devops.
D’ailleurs, vous pouvez regarder notre vidéo sur cette pratique devops :
Origine du terme Chaos Monkey
Même si cela n’est pas des plus importants, je trouvais intéressant de parler de ce terme de Chaos Monkey. Voici l’explication d’Antonio Garcia Martinez dans son livre qui explique pourquoi la solution s’est appelée Chaos Monkey :
« Imaginez un singe s’introduisant dans un data center, ces « fermes » de serveurs qui hébergent toutes les fonctions critiques de nos activités en ligne. Le singe arrache au hasard des câbles, détruit des appareils et retourne tout ce qui lui passe par la main. Le défi pour les responsables informatiques est de concevoir le système d’information dont ils ont la charge pour qu’il puisse fonctionner malgré ces singes, dont personne ne sait jamais quand ils arrivent et ce qu’ils vont détruire. »
Citation d’Antonio Garcia sur le chaos monkey
En effet, la raison de cette appellation « chaos monkey » qui pourrait surprendre est au final très logique.
La résilience aux pannes essentielle aux entreprises (chaos monkey)
Comment un système supporte les pannes possibles du système ? Quelle est la résilience en cas de panne ? La meilleure façon pour s’en assurer est de provoquer la panne directement dans le système.
Heureusement, les ingénieurs de Netflix y ont pensé et ont mis en place ce concept de Chaos Monkey. Un programme va choisir aléatoirement un serveur (ou une instance) et lui simuler une panne.
Ces simulations de pannes ne sont pas anodines car elles permettent en réalité d’améliorer considérablement la qualité du service. Quand un service fonctionne parfaitement malgré des pannes de serveurs ou d’instances, c’est que le système est plutôt bon côté résilience aux pannes.
Même si la mise en place de cette capacité de résilience de pannes peut coûter chère, il faut comprendre qu’il est très intéressant d’avoir un service qui ne s’arrête jamais.
J’ai vu malheureusement des startups risquer leur survie pour des pannes de serveurs pouvant durer jusqu’à 24h.
Chaos Monkey, outil 100% fait pour le devops
Le Chaos Monkey est un outil très utilisé dans le mouvement Devops car il permet de considérablement augmenter la qualité de services. Je pense que les utilisateurs seront ravis de ne pas avoir d’interruption de service.
Oui car pour rappel voici les risques d »une interruption de service :
- clients finaux mécontents
- utilisateurs bloqués donc risque de retard dans l’avancement des tâches
- perte d’argent
En effet le Chaos Monkey est une réponse à un besoin client (ou d’un futur besoin). Celui de ne pas voir le service indisponible. Je n’ai nul doute qu’un client dise : « je veux que le service soit continue sans interruption ».
Cette pratique est venue avec les mouvements agiles dont le devops et le Software Craftsmanship.
Article : Le manifeste du Software Craftsmanship
Des outils équivalents au Chaos Monkey
A présent on peut trouver un grand nombre d’outils dérivés de ce Chaos Monkey comme ceux présentés ci-dessous. Vous verrez d’ailleurs qu’ils font souvent référence au nom « chaos monkey ».
Chaos Gorilla
Le Chaos Gorilla permet de faire tomber une zone Amazon complète.
Chaos kong
Le Chaos Kong permet de faire tomber une région complète d’Amazon.
Latency Monkey
Le Latency Monkey permet d’allonger les délais de réponses et de voir les conséquences de cette baisse de performance.
Doctor Monkey
Le Doctor Monkey permet de mettre automatiquement de côté les serveurs (instances) qui semblent rencontrer des soucis afin qu’ils ne dégradent pas les services et qu’on puisse travailler dessus.
Janitor Monkey
Le Janitor Monkey permet de mettre automatiquement tous les serveurs (instances) non utilisés en hors service afin de ne pas sur consommer en énergie.
Conformity Monkey
Le Conformity Monkey permet de mettre automatiquement tous les serveurs (instance) non conformes en hors service afin de recréer ceux-ci de façon conforme.
Security Monkey
Le Conformity Monkey permet de mettre automatiquement tous les serveurs (instance) qui présentent des vulnérabilités en hors service.
Autres…
Il existe aujourd’hui de nombreux outils dérivés qui viennent renforcer la qualité de nos systèmes comme : le 10-18 Monkey, le Chaos Engineering, le Facebook Storm, le Days of Chaos, le Chaos Toolkit…
Ce que ces outils impliquent ?
Doubler des serveurs et scaler son système sont des techniques très importantes qui peuvent sauver votre entreprise au même titre qu’une sauvegarde régulière des données.
Pourtant pendant une période, les entreprises semblaient privilégier de faire des économies que d’assurer un service continue. Pour cela, elles évitaient de doubler les serveurs pour diminuer les coûts IT…
Heureusement les comportements commencent à changer et la qualité revient sur le devant de la scène et surtout dans les grands groupes.
Lien utile lié au chaos monkey : outil à télécharger
1 Rétrolien / Ping