3. Evolution de “Chaos Monkey” vs “Chaos
Engineering” depuis Juin 2010 sur
Google Trends
Chaos Engineering au sein du
Technology Radar de ThoughtWorks
…Et ce n’est que le début!
Le Chaos Testing en early adopter à la
Conference Qcon New york
7. La résilience est le principe de base de la vie
Faire pareil avec les systèmes informatiques?
Continuer de
vivre quoi qu’il
arrive…
8. Le Chaos engineering vise à accroitre la résilience
des systèmes d’informations, des applications et
des infrastructures qui la composent, mais aussi
des équipes qui les gèrent.
Mais comment?...
10. Datacenter 2
Application A
1 2
3
4
5
Tests unitaires
Tests de régression
Tests d’intégration
Tests techniques
(Performance, charge, résilience, etc…)
Application B
Application C
Application D
non déterministe,
Ensembliste,
Déterministes
• 1 valeur en entrée
• 1 valeur en sortie
• 1 assertion
En production!
Testing & Chaos Engineering
Application centric
Hors prod
Datacenter 1
E
12. CHAOS ENGINEERING
« 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. »
http://principlesofchaos.org/
initiée par
13. Les étapes de l’expérimentation
1. Que cherche-t-on à prouver?
2. Restreindre le périmètre
3. Identifier ce qu’il faut observer
4. Communiquer!
5. Injecter le chaos
6. Analyser consciencieusement les impacts
7. Et Recommencer!
14. Pour la première fois, les indisponibilités
arrivent en tête des sujets d’inquiétude
des responsables informatiques,
devançant ainsi la sécurité.
Sondage réalisé sur un échantillon de 400 entreprises en Grande-Bretagne,
Allemagne, France, Suède et Pays-Bas par Quocirca pour Splunk
Source: Master of Machines III - Réduire l’impact des incidents IT Quocirca
18. Auto-scaling:
Dimensionner son architecture aux justes
besoins du moment, c’est-à-dire de
pouvoir dynamiquement augmenter ou
réduire le nombre d’instances nécessaires
au bon fonctionnement du SI sans
pénaliser les performances.
Scale up :
le système peine, il faut créer plus
d’instances pour absorber la charge.
Scale down :
le système est en sous charge, il ne sert à
rien de disposer de trop d’instances, on les
retire pour adapter la charge.
Scale initial :
C’est le nombre d’instances optimal
devant être disponible à tout moment.
On peut tester l’implémentation
avec un tir de charge
Mais on l’expérimente dans la
vraie vie avec un Chaos Monkey
19. Je n’ai pas d’auto scaling, je ne suis pas chez
AWS, puis-je faire du chaos monkey?
20. Conserver les mêmes concepts autour du Chaos Engineering
Redéfinir et adapter le Chaos Monkey à son infrastructure :
• Valider la résilience des applications sur le même symptôme
• Vérifier la présence d’effets inattendus
Le Chaos
Monkey c’est
une interface à
implémenter!
22. {
"monkey": {
"name": "chaos monkey",
"target": {
"application": "XYZ",
"environnement": "PREP1",
"techno": "webServer",
"nodePattern": "order"
},
"delay": {
"minDelay": "0m",
"maxDelay": "7d",
"workedTime": "0-24|1234567",
"restart": "true",
"restartTime": "10m"
},
"killStyle": "brutal",
"mailTo": "toto@devoxx.fr"
}
}
Mais finalement un peu plus compliqué que ça!
On ne déchaine
pas comme ça
les feux de
l’enfer!
23. Le plus important n’est pas
l’implémentation en elle-même mais la
manière dont on implémente
24. POC
Squad inter-équipe dev & ops
Développement en mode expérimental,
à base de mini-hackatons
Mars 2016
Mai 2017
Aujourd’hui
Janvier 2016
Octobre 2016
Février 2017
Janvier 2017
Juillet 2017
25. Mode de fonctionnement adopté!
Mars 2016
Mai 2017
Aujourd’hui
Janvier 2016
Octobre 2016
Février 2017
Janvier 2017
Juillet 2017
26. Communauté
Résilience et Tests Techniques
Objectifs :
• Proposer des outils de test de résilience
• Aider à la mise en place des outils et patterns
• Apporter un changement culturel
Mars 2016
Mai 2017
Aujourd’hui
Janvier 2016
Octobre 2016
Février 2017
Janvier 2017
Juillet 2017
27. Grâce à la communauté
nous disposons d’un bestiaire
à l’image de la Simian army
de Netflix
Mars 2016
Mai 2017
Aujourd’hui
Janvier 2016
Octobre 2016
Février 2017
Janvier 2017
Juillet 2017
29. Initiation au test en production,
La panne va-t-elle avoir un impact notable?
Pilotage et validation pour les devs Entrainement pour les ops
Chaos Monkey
Bridé
Mars 2016
Mai 2017
Aujourd’hui
Janvier 2016
Octobre 2016
Février 2017
Janvier 2017
Juillet 2017
30. Chaos Monkey en production,
La finalité
Mon appli en prod
Chaos Monkey
Libéré! Délivré!
LES DEV OPS
Même pas peur
Objectif :
Aucun impact financier
Même pas mal!
Mars 2016
Mai 2017
Aujourd’hui
Janvier 2016
Octobre 2016
Février 2017
Janvier 2017
Juillet 2017
31. Premier Chaos Monkey en production…
…et la production marche toujours
Mars 2016
Mai 2017
Aujourd’hui
Janvier 2016
Octobre 2016
Février 2017
Janvier 2017
Juillet 2017
33. Objectif : faire du chaos engineering sur toutes
les applications critiques
Mars 2016
Mai 2017
Aujourd’hui
Janvier 2016
Octobre 2016
Février 2017
Janvier 2017
Juillet 2017
34. #1 : Le Chaos Monkey n’est pas un outil de test
35. #2 : Le Chaos Monkey ce n’est pas casser la prod juste pour s’amuser
36. #3 : Le Chaos Monkey n’est pas un phénomène de mode, il s’inscrit
dans une démarche
40. DaysofChaos
Vous allez subir des vagues de pannes en provenance des tréfonds de l’exploitation.
Votre mission est de repousser ces vagues et de
détecter, diagnostiquer et résoudre
les pannes le plus vite possible.
L’avenir de notre production dépend de vous…
Détection :
+100
Diagnostic :
+150
Résolution :
+200
Bonus 1ère proposition:
+100
Indice :
-50
Nombrederounds: 8
Récompenses:
3
49. Supervision et alerting
Tests techniques
Partage des connaissances
Arbres d’analyse
8 -> 6 pannes
4h -> 3h30 de jeu
80% Intérêt du jeu
70% Qualité de l’organisation
74% Prise de conscience
• Disponibilité
• Préparation des pannes
• Trop peu pour gérer autant de joueurs
• Quelques ratés organisationnels
• Ambiance
• Nouveauté
• Intérêt
• Jeu bien calibré pour une première
51. Days of Chaos
Chapter 1
Days of Chaos
Chapter 2
CHAPTER 3Vendredi 13/01/2017
Vendredi
07/07/2017
VENDREDI 13/07/2018
52. Un Day of Chaos c’est du Chaos Engineering? Mais on est pas en prod!!!
https://medium.com/russmiles/chaos-engineering-for-the-business-17b723f26361
54. En production
La vraie vie, avec des vrais utilisateurs et
potentiellement de la perte de VA.
Communication
Mettre en place du Chaos n’est pas la meilleure
façon de rencontrer vos nouveaux collègues,
mais c’est la plus rapide.
Nora Jones (@nora_js)
Gamification
Rendre l’apprentissage plus amusant
en s’appuyant sur la prédisposition
humaine au jeu
Expérimentation
Les principaux points à retenir
Validation de ce qui est important sur
votre infrastructure. Votre résilience
n’est pas celle des autres.
Les organisations européennes connaissent en moyenne 3 incidents IT par mois.
2/3 (65%) des organisations européennes rapportent qu’un incident IT a déjà eu des conséquences sur leur réputation, engendrant des répercutions financières (115 k€).
On veut de la séduction?
Préparons notre jeu comme un jeu vidéo avec une vrai jaquette!
Ops ont les droits et connaissent un rayon sur les pannes!
Subir ma vie d’exploitant
Transformer la relation avec les devs
Sortir de la routine
Rappel objectif :
Sdf
Devops (faire une sorte de mini subit ma vie)
Marquer les esprits
Pannes Système! Celles que vivent les ops.
Ceci aura été l’hameçonnage pour les ops. Faites subir aux devs ce que vous vivez!
Rappel objectif :
Sdf
Devops (faire une sorte de mini subit ma vie)
Marquer les esprits
Pannes Système! Celles que vivent les ops.
Ceci aura été l’hameçonnage pour les ops. Faites subir aux devs ce que vous vivez!
Besoin d’implication forte de la partie ops.
Présentation comme un jeu mais aussi comme une opportunité de faire un « vie ma vie d’exploitant ». Permettre de sensibiliser les équipes au travail fait et aux pannes les plus fréquentes ou au besoin de bien communiquer et développer les applications.
2 ateliers de création des pannes : 20 exploitants mobilisés en 2 sessions d’une heure. 40 pannes proposées. 15 short listées pour leur pertinence. 8 sélectionnées par facilité de mise en oeuvre et possibilité de résolution par les équipes de dev (il faut rester pragmatique).
Désignation d’une équipe de choc pour gérer le scripting et la réalisation des pannes
Phase de com’ – Opération séduction
Des affiches de teasing créant une rupture avec toutes les autres opérations de com’ réalisées jusqu’à présent.
Le thème principal : le jeu de guerre en reprenant comme support culturel « Ender’s Game (la strategie Ender) » de Scott Orson card.
Des affiches posées avec très peu d’information, juste un « engagez-vous ».
Un ajout à un moment donné d’une adresse vers un site interne réalisé pour l’événement avec sa propre charte graphique et son formulaire d’engagement.
Une com’ réglementaire par mail venant compléter le tout et enfonçant le clou.
Phase de jeu – Le jour J
Début à 9h
4 + 8 + 5 personnes dédiées au déroulement. Deux commentateurs maitres de cérémonie (un à Paris, un à Nantes), une aide ops, une chargée de classement et de décompte de points, 8 ops à 150%, 2 com’ interne, 3 services généraux.
Une conf Skype avec deux commentateurs donnant des informations sur le déroulement et les avancées du jeu
Une room hipchat pour les communications officielles et les réponses
Une conf Skype dediée ops
7 pannes déroulées dont une a râté. Une dernière annulée suite à un incident sur la preprod.
Fin à 12h30
Remise des prix à 14h. Plus de 200 spectateurs
War room côté ops pour éviter une conf dédiée parallèle + effet je suis dédié à l’événement. Possibilité pour les ops de participer à la conf gobale
Prévoir plus d’ops pour faciliter le traitement des demandes des équipes.
Descendre de 4h à 3h d’événement.
Pousser peu plus loin les répétitions et les préparations des pannes.
Planifier la fin des inscriptions plus tôt. Laisser un délais de un mois entre la fin des inscriptions et l’événement.
Un sujet difficile, peu motivant rendu plus accessible par la gamification