Skip to content

Christophe Rochefolle

Experienced IT executive providing tech & organization to improve #quality & #agility of IT systems, #ChaosEngineering fan ; #LGBTQ+ #DiversityInclusion

Menu
  • Accueil
  • Présentation
  • Valeurs
  • Ouvrages
  • Conférences
  • Lectures
  • Images inspirantes
  • Contact
  • English
Menu

Qu’est-ce que le Chaos Engineering ?

Posted on 9 décembre 201710 avril 2020 by Christophe ROCHEFOLLE

L’ingénierie du chaos, ou Chaos Engineering, est une discipline émergente qui vise à éprouver la solidité de l’infrastructure socio-technique afin de toujours mieux préserver la qualité de service. Cette pratique expérimente les lacunes et les faiblesses des applications et de l’infrastructure sur un système distribué. La complexification et l’automatisation des systèmes rendent cette pratique de plus en plus importante pour maintenir l’expérience utilisateur. Expérimentée depuis 7 ans par des pure-player comme Netflix, elle s’est structurée autour de process et d’outils dédiés.

La question que pose cette discipline est : A quel point votre système est-il proche du précipice et peut sombrer dans le chaos ?

 A chaque instant, quelque chose, quelque part, tombe en panne. Il ne s’agit plus de croiser les doigts pour que ça n’arrive pas, mais de mettre en place la résilience nécessaire dans nos systèmes pour tolérer les pannes, et de s’assurer que cette résilience est opérationnelle et fiable en production.

Et pourtant, on teste !

Nous avons tous mis en place l’ensemble des tests nécessaire à la qualité de nos applications et pour garantir la conformité aux normes d’exploitabilité, pour atteindre le niveau de confiance nécessaire aux déploiements de plus en plus fréquents des évolutions de notre SI.

Cependant, une des plus importantes problématiques dans les pratiques de test est la représentativité des environnements hors production.

Nous nous sommes tous confrontés à une dure réalité : c’est quasi impossible et très coûteux à maintenir à jour.

L’avènement des démarches Agile & Devops contribue à complexifier le sujet en permettant de livrer de plus en plus fréquemment, jusqu’à plusieurs fois par jour.

Par ailleurs, les environnements hors production sont et seront de moins en moins représentatifs quand vous êtes dans le Cloud et que votre infra s’adapte à votre trafic par de l’auto-scalling.

La personnalisation de plus en plus poussée de nos applications – donc avec des comportements basés sur de la donnée — nous met face à des parcours clients qui s’adaptent en temps réel.

Et çà va empirer avec le déploiement de l’Intelligence Artificielle.

Il devient donc nécessaire d’expérimenter en production afin d’avoir le bon niveau de confiance dans nos systèmes.

Oui, vous avez bien lu, il s’agit bien d’effectuer des tests en production :

  • Expérimenter pour éprouver nos systèmes : plutôt qu’attendre une panne, il s’agit d’en introduire une pour tester la résilience du système,
  • Expérimenter pour apprendre : il ne s’agit pas de provoquer le chaos pour s’amuser, mais bien pour découvrir des faiblesses inconnues de nos systèmes.

Il s’agit par contre d’expérimenter en production sur un système stable et performant.

Ce n’est pas un jeu, mais la vie réel, avec des impacts humains et financiers potentiellement important.

L’ingénieur du Chaos n’est pas un savant fou, c’est un explorateur en recherche de connaissances sur le système qu’il étudie.

The Road to Hell is Paved with Good Intentions……………. – Visions and ...

Qu’est-ce qu’une expérimentation ?

Dans l’ouvrage présenté en fin d’article, les ingénieurs du Chaos de Netflix Technology Blog ont proposé ce protocole :

  1. Définir quelle est la question que l’on souhaite poser au système : souhaite-t-on tester la résilience d’un composant, d’une application, d’une organisation ?
  2. Définir le périmètre de l’expérience : est-ce tout ou partie de la production ? est-ce uniquement l’environnement technique seul ou inclure également les interventions humaines (surveillance, exploitation, support),
  3. Identifier précisément les métriques qui permettront de valider l’expérience et éventuellement de l’arrêter instantanément en cas d’impact critique,
  4. Communiquer, prévenir l’organisation de l’existence de l’expérimentation — pour éviter l’escalade en cas d’incident critique
  5. Réaliser l’expérience
  6. Analyser les résultats, mettre en place les éventuels plans d’action nécessaires
  7. Elargir le scope pour la prochaine expérience.

Cependant, faire un test une fois permettra de se rassurer sur la résilience de votre système, mais avec des changements permanents, la seule façon de bien dormir la nuit est d’automatiser l’expérience pour qu’elle se réalise en continue afin de suivre l’évolution du système.

Exemple d’expérimentation

  • Mettre en place des Chaos Monkey — simuler des pannes en environnement réel et vérifier que le système informatique continue à fonctionner.
    L’expérience 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’impacte d’aucune façon le service rendu.
    Mise en place par Netflix début 2011, ils ont intégré la Simian Army qui présentent d’autres types d’interruption : Chaos Kong (qui fait tomber une zone complète de disponibilité Amazon), Latency Monkey (qui permet de tester la tolérance à la perte de performance d’un composant externe), Security Monkey (qui met hors service toutes instances qui présentent des vulnérabilités), …
  • Mettre en place un Gameday : pour tester la résilience de l’organisation et l’entrainer à réagir en cas d’incidents, Jesse Robbins, ex- « Master of Disaster » chez Amazon, a mis en place le concept de Gameday qui consistent à simuler des pannes pour tester la capacité des équipes à réagir et revenir à une situation nominale.
  • Mettre en place un Days of Chaos, une déclinaison de GameDay par OUI.sncf à destination de toutes les équipes IT et visant à l’entrainement à la détection, au diagnostic et à la résolution des incidents de production.
  • Mettre en place des Test de Récupération après Sinistre (Disaster Recovery Testing) de manière récurrente.

Pour en savoir plus

Je vous recommande cet ebook gratuit chez O’Reilly: Chaos Engineering, Building Confidence in System Behavior through Experiments

 

Partager :

  • Cliquez pour partager sur Twitter(ouvre dans une nouvelle fenêtre)
  • Cliquez pour partager sur Facebook(ouvre dans une nouvelle fenêtre)

Articles similaires

1 thought on “Qu’est-ce que le Chaos Engineering ?”

  1. Ping : DevOps : un système industriel au service des équipes, elles-mêmes au service de leurs clients - Christophe Rochefolle

Laisser un commentaire Annuler la réponse

Votre adresse e-mail 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.

Suivez-moi

Tweets

On m’a déjà fait comme retour que je suis trop “gentil” dans mon management - 1/ c’est mal me connaître, je suis adepte du “praise in public, criticize in private”, 2/ à priori c’est un atout pour la productivité des équipes welcometothejungle.c…

Il y a 5 jours De Christophe Rochefolle @crochefolle@fosstodon.org's Twitter via Twitter for iPhone

RT @jocelyngriselle @FlutterFrance @SNCFConnectTech Une vidéo amateur de notre envoyé spécial semble indiquer que le cameraman du Flutter Forward avait des parts chez Train Line et a volontairement détourné la camera #onnousment #freesncfconnect #probablementunreptilien twitter.com/nosseste…

Il y a 6 jours De Christophe Rochefolle @crochefolle@fosstodon.org's Twitter via Twitter for iPhone

RT @FlutterFrance Il fallait être trèèèès attentif/attentive pour arriver à voir @SNCFConnectTech qui a été diffusé hier au #FlutterForward pendant à peu près 2 secondes 🚅 pic.twitter.com/HBQM…

Il y a 6 jours De Christophe Rochefolle @crochefolle@fosstodon.org's Twitter via Twitter for iPhone

RT @t3dotgg When you open your website on Safari for the first time pic.twitter.com/fxGX…

Il y a 6 jours De Christophe Rochefolle @crochefolle@fosstodon.org's Twitter via Twitter for iPhone

RT @SNCFConnectTech Stay tuned ! Nous devrions faire une apparition au #FlutterForward avec notre application tout-en-un des mobilités durables #SNCFConnect développée sur #Flutter par nos #DigitalMobilityChangers twitter.com/FlutterF…

La semaine dernière De Christophe Rochefolle @crochefolle@fosstodon.org's Twitter via Twitter for iPhone

Enjoy and bring back pictures and good news to share with our #DigitalMobilityChangers @SNCFConnectTech twitter.com/nosseste…

La semaine dernière De Christophe Rochefolle @crochefolle@fosstodon.org's Twitter via Twitter for iPhone

Très heureux de démarrer l’année en accueillant le retour 2 ans après du meetup @FlutterParis twitter.com/SNCFConn…

Il y a 2 semaines De Christophe Rochefolle @crochefolle@fosstodon.org's Twitter via Twitter for iPhone

RT @SNCFConnectTech C’est parti pour le Meetup @FlutterParis ! Au programme : 2 conférences #tech et un #live par les équipes @SNCFConnectTech. Suivez l’événement en direct sur ce #thread 👇 pic.twitter.com/ddD0…

Il y a 2 semaines De Christophe Rochefolle @crochefolle@fosstodon.org's Twitter via Twitter for iPhone

RT @SNCFConnectTech Nos experts #Flutter vous donnent RDV le 17/01 prochain à 19h dans nos locaux pour le Meetup @FlutterParis ! 📅 Inscriptions et programme ⤵️

Il y a 3 semaines De Christophe Rochefolle @crochefolle@fosstodon.org's Twitter via Twitter for iPhone

Le train est un choix, pas uniquement parce que je bosse dans une filiale du groupe SNCF, pas uniquement parce que mes 2 grand-pères y travaillaient mais surtout car c’est un moyen de transport eco-responsable 🌳🌳🌳 #monAnneeSncfConnect #sncfconnect pic.twitter.com/Z5EW…

Le mois dernier De Christophe Rochefolle @crochefolle@fosstodon.org's Twitter via Twitter for iPhone

Articles

  • Chaos (6)
  • Conférences (2)
  • DevOps (4)
  • Management & LeaderShip (3)
  • Non classé (2)
  • Qualité & Excellence (6)
  • Valeurs (4)

Abonnez-vous

Rejoignez les 3 autres abonnés
Confidentialité et cookies : ce site utilise des cookies. En continuant à naviguer sur ce site, vous acceptez que nous en utilisions.
Pour en savoir plus, y compris sur la façon de contrôler les cookies, reportez-vous à ce qui suit : Politique relative aux cookies
© 2023 Christophe Rochefolle | Fourni par Superbs Thème de blog personnel