Accueil🇫🇷Chercher

Chaos Monkey

Chaos Monkey est un logiciel conçu en 2011 par Netflix pour tester la résilience de ses infrastructures informatiques[3]. Le but de cet outil est de provoquer des pannes en environnement réel et de vérifier que le système informatique continue à fonctionner.

Concept

Depuis toujours, dans la conception des logiciels, la notion d'exigence non-fonctionnelle était incluse dans les spécifications. Ces exigences mentionnaient notamment la capacité du logiciel à tolérer les pannes, à être résilient pour garantir une qualité de service optimale. Souvent par manque de temps face au besoin de livrer rapidement un logiciel ou par méconnaissance du domaine, les équipes de développement faisaient l'impasse sur ces sujets.

En 2011, des ingénieurs de Netflix - Yury Izrailevsky, aujourd'hui directeur Cloud & Infrastructure et Ariel Tseitlin, aujourd'hui directeur des solutions Cloud[4], ont eu l'idée de changer le paradigme en mettant en place un outil en environnement de production, soit l'environnement réel utilisé par les clients de Netflix, un outil qui allait causer des pannes. Ils ont donc proposé de passer d'un modèle où les équipes construisent un logiciel en espérant qu'il n'y aura pas de pannes à un modèle où ils seront certains qu'il y a aura une panne - mais provoquée. Prendre en compte la résilience dans la conception des logiciels n'est donc plus une option, mais une obligation :

« Chez Netflix, notre culture de libertĂ© et de responsabilitĂ© nous a conduit Ă  ne pas forcer les ingĂ©nieurs Ă  concevoir leur code d’une manière spĂ©cifique. Ă€ la place, nous avons dĂ©couvert que nous pouvions aligner nos Ă©quipes autour de la notion de rĂ©silience des infrastructures en isolant les problèmes crĂ©Ă©s par la neutralisation des serveurs et en les poussant Ă  l’extrĂŞme. Nous avons crĂ©Ă© Chaos Monkey, un programme qui choisit un serveur au hasard et le neutralise pendant ses heures habituelles d’activitĂ©. Certains trouveront cela dingue, mais nous ne pouvions dĂ©pendre de l’occurrence alĂ©atoire d’un Ă©vènement pour tester notre comportement face aux consĂ©quences mĂŞmes de cet Ă©vènement. Savoir que cela allait arriver frĂ©quemment a crĂ©Ă© un solide alignement parmi les ingĂ©nieurs pour construire la redondance et l’automatisation des process pour survivre Ă  ce type d’incidents, sans que cela ait d’impact sur les millions d’utilisateurs de Netflix. Chaos Monkey est un de nos outils les plus efficaces pour amĂ©liorer la qualitĂ© de nos services Â»[5].

Le concept de Chaos Monkey consiste Ă  rĂ©gulièrement choisir au hasard des instances dans l’environnement de production et de les mettre dĂ©libĂ©rĂ©ment hors service. En « tuant » rĂ©gulièrement des instances au hasard, on s'assure avoir anticipĂ© correctement la survenue de ce type d’incidents en mettant en place une architecture suffisamment redondante pour qu’une panne de serveurs n’affecte d’aucune façon les millions de membres de Netflix dans le monde. Le nom de Chaos monkey est expliquĂ© dans le livre Chaos Monkeys d’Antonio Garcia Martinez[6] :

Imaginez un singe s’introduisant dans un centre de donnĂ©es, 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.

Netflix a rendu public le code source de cet outil en 2012[7] - [8].

Différentes variantes de la Simian Army

Netflix Simian Army

La Simian Army[8] (litt. « l’armĂ©e simiesque ») est une suite d’outils dĂ©veloppĂ©s par Netflix pour tester la fiabilitĂ©, la sĂ©curitĂ© ou la rĂ©silience de ses infrastructures Amazon Web Services[9]. Elle a Ă©tĂ© initiĂ©e par Greg Orzell, alors IngĂ©nieur système senior chez Netflix.

  • Chaos Monkey

Premier outil développé par Greg Orzell, Netflix, il permet de choisir au hasard des instances dans l’environnement de production et de les mettre délibérément hors service.

  • Chaos Gorilla

Grand frère du monkey, Chaos Gorilla, fait tomber une zone complète de disponibilitĂ© Amazon[10].

  • Chaos Kong

Tout en haut de la pyramide hiĂ©rarchique de la Simian Army, Chaos Kong, fait tomber une rĂ©gion complète Amazon, crĂ©Ă© par Luke Koweski.

  • Latency Monkey

En introduisant des délais dans les échanges au niveau des couches de communication, outil qui permet de tester la tolérance à la perte de performance d'un composant externe dont le système est dépendant, jusqu'à simulation d'une coupure complète par - un délai infini, sans avoir besoin de demander au partenaire concerné de couper son service.

  • Doctor Monkey

Outil qui détecte toutes instances qui présentent des risques de santé - surcharge CPU par exemple - et les écarte du système pour analyse des causes racines voire pour extinction.

  • Janitor Monkey

Outil qui met hors service toutes instances non utilisées afin d'éviter de surconsommer, créé également par Greg Orzell.

  • Conformity Monkey

Outil qui met hors service toutes instances non conformes afin de permettre au système de la recréer correctement par Greg Orzell.

  • Security Monkey

Dérivé du Conformity Monkey, outil qui met hors service toutes instances qui présentent des vulnérabilités.

  • 10–18 Monkey

Outil qui détecte des problèmes de localisation, de langage (l10n-i18n) sur les instances.

Chaos Monkey et Devops

La chaîne d'outils Devops

Dans le cadre du mouvement Devops, une attention particulière est portée à la sûreté de fonctionnement des systèmes informatiques permettant ainsi d'apporter un niveau de confiance suffisant malgré les mises en production fréquentes. En contribuant à la Chaîne d'outils Devops, les Chaos Monkey répondent au besoin de tests continus.

Ils s'inscrivent dans le modèle Design for failure [11], « conçu pour supporter la dĂ©faillance Â» : une application informatique doit ĂŞtre capable de supporter la panne de n’importe quel composant logiciel ou matĂ©riel sous-jacent.

Projets connexes

Chaos Engineering

Chaos Engineering est la discipline de l'expérimentation sur un système distribué afin de renforcer la confiance dans la capacité du système à résister à des conditions turbulentes en production[12].

Il s'agit d'une communauté construite autour des principes définis sur le site Principlesofchaos.org, initiée par Netflix[13].

Facebook Storm

Pour se préparer à la perte d’un centre de données, Facebook teste régulièrement la résistance de ses infrastructures aux événements extrêmes. Connu sous l’appellation projet Storm, le programme simule des pannes massives dans les datacenters[14].

Days of Chaos

Voyages-sncf.com a créé un "Day of Chaos"[15] en 2017, qui gamifie la simulation des pannes en pré-production[16]. Ils ont presenté leurs resultats à la conférence Devops REX 2017[17].

Chaos Toolkit

Le Chaos Toolkit est né de la volonté de simplifier l'accès à la discipline du Chaos Engineering et démontrer que l'approche par expérimentation peut se faire à différents niveaux : infrastructure, plateforme mais aussi applicatif. Le Chaos Toolkit est un outil open source, sous licence Apache 2, publié en [18].

Notes et références

  1. « Release 2.0.2 », (consulté le )
  2. « Release 2.1.1 », (consulté le )
  3. « The Netflix Simian Army », sur Netflix TechBlog, Blog Netflix Technology, (consulté le )
  4. Netflix Technology Blog, « The Netflix Simian Army », sur Netflix TechBlog, (consulté le )
  5. Netflix Technology Blog, « Netflix Chaos Monkey Upgraded », sur Netflix TechBlog, (consulté le )
  6. « Mais qui sont ces singes du chaos ? - 15marches », Le blog de 15marches,‎ (lire en ligne, consulté le )
  7. « Netflix libère Chaos Monkey dans la jungle Open Source - Le Monde Informatique », LeMondeInformatique,‎ (lire en ligne, consulté le )
  8. SimianArmy: Tools for keeping your cloud operating in top form. Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures, Netflix, Inc., (lire en ligne)
  9. SemiColonWeb, « Infrastructure : quelles méthodes pour s'adapter aux nouvelles architectures Cloud ? - D2SI Blog », D2SI Blog,‎ (lire en ligne, consulté le )
  10. « Résilience cloud: Netflix mise sur ses singes tueurs d’instances AWS », sur www.ictjournal.ch (consulté le )
  11. « Les Patterns des Grands du Web – Design for failure | OCTO Talks ! », sur blog.octo.com (consulté le )
  12. « Principles of Chaos Engineering », sur principlesofchaos.org (consulté le )
  13. « Le Chaos Engineering par Netflix », sur InfoQ (consulté le )
  14. (en) Robert Hof, « Interview: How Facebook's Project Storm Heads Off Data Center Disasters », Forbes,‎ (lire en ligne, consulté le )
  15. « Days of Chaos », sur Days of Chaos (consulté le )
  16. « DevOps : le retour d’expérience de Voyages-sncf.com - Blog du Modérateur », Blog du Modérateur,‎ (lire en ligne, consulté le )
  17. devops REX, « Days of Chaos : le développement de la culture devops chez Voyages-Sn… », Slideshare,‎ (lire en ligne, consulté le )
  18. Russ Miles, « Introducing and Extending the Chaos Toolkit », sur Russ Miles (the Geek on a Harley), (consulté le )
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.