Qu’est-ce que le Chaos monkey ?

Ecrit par << Paquet Judicaël >>

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.

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

Voici le raison très simple de cette appellation qui pourrait surprendre quand on ne connait pas les raisons de son existence.

La résilience aux pannes essentielle aux entreprises

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.

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

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.

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.

[ Article lu 1 fois aujourd'hui ]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.