SlideShare une entreprise Scribd logo
1  sur  89
Sponsorisé par
24 novembre 2017
Le Chaos Engineering dans le monde
www.slido.com #8283
Programme
16h : Introduction du Meetup
16h05
 Place au Chaos Engineering, une discipline
émergente
Christophe Rochefolle, Directeur Excellence
Opérationnelle – OUI.sncf
16h20
 Chaos Monkey, concept et implémentation
chez OUI.sncf
Benjamin Gakic, Expert Sûreté de Fonctionnement
& facilitateur – OUI.sncf
16h35
 Days Of Chaos, un Chaos Gameday chez
OUI.sncf
Benjamin Gakic, Expert Sûreté de Fonctionnement
& facilitateur - OUI.sncf
16h50
 ChaosToolkit,
une API ouverte pour le Chaos Engineering
Sylvain Hellegouarch / sylvain@chaosiq.io
Suivi de 20 à 30 minutes d’échanges puis
17h30 : After-work pour continuer la discussion
©chaosiq 2017
Place au
Chaos Engineering,
une discipline émergente
Christophe Rochefolle
Directeur Excellence Opérationnelle – OUI.sncf
Si ce n’est pas cassé, ne le répare
pas.
Bert Lance, Nation’s Business, 1977
Si ce n’est pas encore cassé,
essaye plus fort.
Philosophie Chaos Engineering, 2015
Pourquoi
une nouvelle discipline ?
Désordre
SIMPLE
COMPLIQUÉ
CHAOS
COMPLEXE
Procédure
Meilleures pratiques
Observer – Catégoriser – Répondre
Expert
Bonnes pratiques
Observer – Analyser – Répondre
Agilité, Devops & Management 3.0
Pratiques émergentes
Sonder – Observer – Répondre
Produit Sprint
Nouvelles Pratiques
Agir – Observer – Répondre
Chaos Engineering
Causes
Effets
?
Systémique Cause
Effet
Indus
Cause
Effet
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
La Question :
A quel point votre système
est-il proche du précipice
et peut sombrer
dans le chaos ?
La réponse
usuelle :
Est-ce suffisant ?
Expérimenter en
production ?!?
Expérimenter
pour éprouver nos systèmes
Expérimenter
pour apprendre
Expérimenter
en production
sur un système stable et performant
Designer
l’expérimentation
1. Question
2. Périmètre
3. Mesure
4. Communiquer
5. Injecter
6. Analyser
Expérimenter
en continue
Automatiser l’expérience
pour qu’elle se réalise en continue
afin de suivre l’évolution du système
Belle théorie…?
Notre histoire commence
fin 2015 …
Chaos Monkey,
Du concept à l’implémentation
Benjamin Gakic
Expert Sûreté de Fonctionnement & facilitateur - OUI.sncf
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
La vrai question n’est pas de savoir si ça va tomber mais quand ça va tomber
Werner Vogels: “Everything fails all the time”
Si vous savez que ça va tomber, forcément vous en tenez compte
CTO @Amazon
Je n’ai pas d’auto scaling, je ne suis pas chez
AWS, puis-je faire du chaos monkey?
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
L’implémentation technique?...
Le plus important n’est pas
l’implémentation en elle-même mais la
manière dont on implémente
POC
Squad inter-équipe dev & ops
Développement en mode expérimental,
à base de mini-hackatons
Mars 2016
Mai 2017
Fin 2017
Janvier 2016
Octobre 2016
Février 2017
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
Fin 2017
Janvier 2016
Octobre 2016
Février 2017
Grâce à la communauté
nous disposons d’un bestiaire
à l’image de la Simian army
de Netflix
Mars 2016
Mai 2017
Fin 2017
Janvier 2016
Octobre 2016
Février 2017
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
Fin 2017
Janvier 2016
Octobre 2016
Février 2017
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
Fin 2017
Janvier 2016
Octobre 2016
Février 2017
Premier Chaos Monkey en production…
…et la production marche toujours
Mars 2016
Mai 2017
Fin 2017
Janvier 2016
Octobre 2016
Février 2017
Nous prévoyons 5 applications exécutant
régulièrement un chaos monkey en production
Mars 2016
Mai 2017
Fin 2017
Janvier 2016
Octobre 2016
Février 2017
#1 : Le Chaos Monkey n’est pas un outil de test
#2 : Le Chaos Monkey ce n’est pas casser la prod juste pour s’amuser
#3 : Le Chaos Monkey n’est pas un phénomène de mode, il s’inscrit
dans une démarche
Comme toute démarche, une action unique
ne suffit pas
Benjamin Gakic
Expert Sûreté de Fonctionnement & facilitateur - OUI.sncf
Days of Chaos
Chapter One
Vendredi 13 Janvier 2017
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
Résolution Dev
Incident Ops
Détection Dev Diagnostic Dev
Remise en état...
Validation Ops
Gestion d’une panne Question bonus Vidéo explicative1 2 3
Sans ops rien n’est
possible!
Impliquer
Convaincre
43 pannes
8 short listées
113 joueurs
18 équipes 2 commentateurs
2 aides de camp
8 ops
Objectif accompli !
Détection : 87%
Diagnostic : 73%
Résolution : 45%
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
Communication et marketing
Cohésion intra et inter-équipes
Gamification
Points forts
Fin du premier chapitre
A vous d’organiser vos Days of Chaos!
Partagez vos expériences sur http://days-of-chaos.com
C’était le début de notre histoire…
… pour commencer la vôtre,
et si vous utilisiez un framework
pour bootstrapper ?
chaostoolkit
Une API ouverte pour le Chaos
Engineering
© chaosiq 2017 - Sylvain Hellegouarch / sylvain@chaosiq.io
D’où partons-nous ?
Enfin, plutôt ça...
Ce à quoi nous aspirons
Au début on a
un plan
Tout va bien
Mais après un certain temps
Nous ne maîtrisons pas
tout.
Demandez à OVH
Ou AWS
Ou GitHub
Ou Monzo
Responsabilités ?
Que faire ?
Continuellement
challenger le système et
nos acquis
Puis analyser et
répondre
Chaos Engineering
with the chaostoolkit
Une API ouverte pour la
chaos engineering
C’est votre
expérience
Et votre
expertise
Le chaostoolkit n’est pas
prescriptif
Le chaostoolkit s’adapte
à vos environnements et
process
chaostookit en quelques mots
• Open-Source (Apache v2)
• Extensible (déjà Kubernetes, Gremlin, Prometheus, Kubesec…)
• Plateforme agnostique
• Python 3
• Workshop à Munich lundi 20/11 basé sur le chaostoolkit
Piloté par sa
communauté
Une interface accessible
de pilotage et
d’apprentissage
d’initiatives chaos
engineering
chaostoolkit - Collecter l’information
Probes => pour interroger et collecter de l’information durant l’expérience
"probes": {
"close": {
"title": "Fetch the CPU usage for our service",
"layer": "application",
"type": "python",
"module": "chaosprometheus.probes",
"func": "query",
"arguments": {
"query": "process_cpu_seconds_total{job='websvc'}",
"when": "2 minutes ago"
}
}
}
chaostoolkit - Agir sur le système
Actions => conditions de stress du système
"action": {
"title": "Let's max out the CPU of a node",
"layer": "application",
"type": "python",
"module": "chaosgremlin.actions",
"func": "attack",
"background": true,
"secrets": "gremlin",
"arguments": {
"command": {
"type": "cpu"
},
"target": {
"type": "Random"
}
}
}
Démo !
Merci pour votre attention
JESSE ROBBINS
Ex-Amazon « Master of disaster »
Fondateur et CEO de OrionLabs
Ancien pompier
Créateur du concept de « GameDay »
Merci aux papas du Chaos Engineering
YURY IZRAILEVSKY
Directeur Cloud &
Infrastructure NETFLIX
ARIEL TSEITLIN
Directeur des solutions
Cloud NETFLIX
Créateurs du concept de « Chaos Monkey »
« For every dollar spent in
failure, learn a dollar’s
worth of lesson. »
“Our journey to the cloud at Netflix began in August of 2008, when we experienced a
major database corruption and for three days could not ship DVDs to our members.
That is when we realized that we had to move away from vertically scaled single points
of failure, like relational databases in our datacenter, towards highly reliable,
horizontally scalable, distributed systems in the cloud.”
Merci à la nouvelle génération
Pour continuer à échanger, rejoignez-nous sur le groupe
Paris Chaos Engineering Meetup
http://meetu.ps/c/3BMlX/xNjMx/f
Merci à
pour l’accueil et l’organisation de ce premier Meetup
et…
After-work

Contenu connexe

Similaire à Paris Chaos Engineering Meetup #1

Agile France 2018 : chaos engineering
Agile France 2018 : chaos engineeringAgile France 2018 : chaos engineering
Agile France 2018 : chaos engineeringBenjamin Gakic
 
Rapide introduction au concepts du Chaos Engineering
Rapide introduction au concepts du Chaos EngineeringRapide introduction au concepts du Chaos Engineering
Rapide introduction au concepts du Chaos EngineeringSylvain Hellegouarch
 
Softshake 2015 comment tester et optimiser la performance d'un si
Softshake 2015   comment tester et optimiser la performance d'un siSoftshake 2015   comment tester et optimiser la performance d'un si
Softshake 2015 comment tester et optimiser la performance d'un siMarc Bojoly
 
PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?Marc Bojoly
 
Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)LVLUP
 
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...SEO CAMP
 
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?cyrilpicat
 
Le chaos engineering - L'arbre qui cache la forêt ?
Le chaos engineering  - L'arbre qui cache la forêt ?Le chaos engineering  - L'arbre qui cache la forêt ?
Le chaos engineering - L'arbre qui cache la forêt ?Sylvain Hellegouarch
 
Radical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptxRadical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptxFlavian Hautbois
 
VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023SpikeeLabs
 
Mob Programming et #NoEstimates : contre-intuitif et efficace
Mob Programming et #NoEstimates : contre-intuitif et efficaceMob Programming et #NoEstimates : contre-intuitif et efficace
Mob Programming et #NoEstimates : contre-intuitif et efficaceNicolas Umiastowski
 
Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012AgileCoach.net
 
Keynote agile grenoble 2013
Keynote agile grenoble 2013Keynote agile grenoble 2013
Keynote agile grenoble 2013AgileCoach.net
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange LabsEmmanuel Hugonnet
 
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?Publicis Sapient Engineering
 
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Nicolas Silberman
 
Afterwork OCTO Delivery - L'ADN d'un développement produit réussi
Afterwork OCTO Delivery - L'ADN d'un développement produit réussiAfterwork OCTO Delivery - L'ADN d'un développement produit réussi
Afterwork OCTO Delivery - L'ADN d'un développement produit réussicyrilpicat
 
L'ADN d'un développement produit réussi
L'ADN d'un développement produit réussiL'ADN d'un développement produit réussi
L'ADN d'un développement produit réussiOCTO Technology Suisse
 
Décryptage des LLMs au-delà de la hype - Lyon Data science
Décryptage des LLMs au-delà de la hype - Lyon Data scienceDécryptage des LLMs au-delà de la hype - Lyon Data science
Décryptage des LLMs au-delà de la hype - Lyon Data scienceMarie-Alice Blete
 

Similaire à Paris Chaos Engineering Meetup #1 (20)

Agile France 2018 : chaos engineering
Agile France 2018 : chaos engineeringAgile France 2018 : chaos engineering
Agile France 2018 : chaos engineering
 
Rapide introduction au concepts du Chaos Engineering
Rapide introduction au concepts du Chaos EngineeringRapide introduction au concepts du Chaos Engineering
Rapide introduction au concepts du Chaos Engineering
 
Softshake 2015 comment tester et optimiser la performance d'un si
Softshake 2015   comment tester et optimiser la performance d'un siSoftshake 2015   comment tester et optimiser la performance d'un si
Softshake 2015 comment tester et optimiser la performance d'un si
 
PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?
 
Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)
 
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
 
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
 
Le chaos engineering - L'arbre qui cache la forêt ?
Le chaos engineering  - L'arbre qui cache la forêt ?Le chaos engineering  - L'arbre qui cache la forêt ?
Le chaos engineering - L'arbre qui cache la forêt ?
 
Radical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptxRadical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptx
 
VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023
 
Mob Programming et #NoEstimates : contre-intuitif et efficace
Mob Programming et #NoEstimates : contre-intuitif et efficaceMob Programming et #NoEstimates : contre-intuitif et efficace
Mob Programming et #NoEstimates : contre-intuitif et efficace
 
Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012
 
Keynote agile grenoble 2013
Keynote agile grenoble 2013Keynote agile grenoble 2013
Keynote agile grenoble 2013
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
 
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
 
Afterwork OCTO Delivery - L'ADN d'un développement produit réussi
Afterwork OCTO Delivery - L'ADN d'un développement produit réussiAfterwork OCTO Delivery - L'ADN d'un développement produit réussi
Afterwork OCTO Delivery - L'ADN d'un développement produit réussi
 
L'ADN d'un développement produit réussi
L'ADN d'un développement produit réussiL'ADN d'un développement produit réussi
L'ADN d'un développement produit réussi
 
Agile Tour 2016 @ Lille
Agile Tour 2016 @ LilleAgile Tour 2016 @ Lille
Agile Tour 2016 @ Lille
 
Décryptage des LLMs au-delà de la hype - Lyon Data science
Décryptage des LLMs au-delà de la hype - Lyon Data scienceDécryptage des LLMs au-delà de la hype - Lyon Data science
Décryptage des LLMs au-delà de la hype - Lyon Data science
 

Plus de Christophe Rochefolle

Agile Secteur Public - Numérique Responsable
Agile Secteur Public - Numérique ResponsableAgile Secteur Public - Numérique Responsable
Agile Secteur Public - Numérique ResponsableChristophe Rochefolle
 
Une App responsable pour de la mobilité durable
Une App responsable pour de la mobilité durableUne App responsable pour de la mobilité durable
Une App responsable pour de la mobilité durableChristophe Rochefolle
 
#DevOps - Et si on déployait le vendredi
#DevOps - Et si on déployait le vendredi#DevOps - Et si on déployait le vendredi
#DevOps - Et si on déployait le vendrediChristophe Rochefolle
 
From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018Christophe Rochefolle
 
Kriss Rochefolle: "How to Convince Your Boss to Say "Yes!" to Chaos Engineeri...
Kriss Rochefolle: "How to Convince Your Boss to Say "Yes!" to Chaos Engineeri...Kriss Rochefolle: "How to Convince Your Boss to Say "Yes!" to Chaos Engineeri...
Kriss Rochefolle: "How to Convince Your Boss to Say "Yes!" to Chaos Engineeri...Christophe Rochefolle
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebChristophe Rochefolle
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1Christophe Rochefolle
 

Plus de Christophe Rochefolle (9)

Agile Secteur Public - Numérique Responsable
Agile Secteur Public - Numérique ResponsableAgile Secteur Public - Numérique Responsable
Agile Secteur Public - Numérique Responsable
 
Une App responsable pour de la mobilité durable
Une App responsable pour de la mobilité durableUne App responsable pour de la mobilité durable
Une App responsable pour de la mobilité durable
 
#DevOps - Et si on déployait le vendredi
#DevOps - Et si on déployait le vendredi#DevOps - Et si on déployait le vendredi
#DevOps - Et si on déployait le vendredi
 
From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018
 
Kriss Rochefolle: "How to Convince Your Boss to Say "Yes!" to Chaos Engineeri...
Kriss Rochefolle: "How to Convince Your Boss to Say "Yes!" to Chaos Engineeri...Kriss Rochefolle: "How to Convince Your Boss to Say "Yes!" to Chaos Engineeri...
Kriss Rochefolle: "How to Convince Your Boss to Say "Yes!" to Chaos Engineeri...
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et Web
 
Qualité logiciel - Generalités
Qualité logiciel - GeneralitésQualité logiciel - Generalités
Qualité logiciel - Generalités
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1
 

Paris Chaos Engineering Meetup #1

  • 2.
  • 3. Le Chaos Engineering dans le monde
  • 5. Programme 16h : Introduction du Meetup 16h05  Place au Chaos Engineering, une discipline émergente Christophe Rochefolle, Directeur Excellence Opérationnelle – OUI.sncf 16h20  Chaos Monkey, concept et implémentation chez OUI.sncf Benjamin Gakic, Expert Sûreté de Fonctionnement & facilitateur – OUI.sncf 16h35  Days Of Chaos, un Chaos Gameday chez OUI.sncf Benjamin Gakic, Expert Sûreté de Fonctionnement & facilitateur - OUI.sncf 16h50  ChaosToolkit, une API ouverte pour le Chaos Engineering Sylvain Hellegouarch / sylvain@chaosiq.io Suivi de 20 à 30 minutes d’échanges puis 17h30 : After-work pour continuer la discussion ©chaosiq 2017
  • 6. Place au Chaos Engineering, une discipline émergente Christophe Rochefolle Directeur Excellence Opérationnelle – OUI.sncf
  • 7. Si ce n’est pas cassé, ne le répare pas. Bert Lance, Nation’s Business, 1977 Si ce n’est pas encore cassé, essaye plus fort. Philosophie Chaos Engineering, 2015
  • 8. Pourquoi une nouvelle discipline ? Désordre SIMPLE COMPLIQUÉ CHAOS COMPLEXE Procédure Meilleures pratiques Observer – Catégoriser – Répondre Expert Bonnes pratiques Observer – Analyser – Répondre Agilité, Devops & Management 3.0 Pratiques émergentes Sonder – Observer – Répondre Produit Sprint Nouvelles Pratiques Agir – Observer – Répondre Chaos Engineering Causes Effets ? Systémique Cause Effet Indus Cause Effet
  • 9. 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
  • 10. La Question : A quel point votre système est-il proche du précipice et peut sombrer dans le chaos ?
  • 14. Expérimenter pour éprouver nos systèmes Expérimenter pour apprendre
  • 15. Expérimenter en production sur un système stable et performant
  • 16. Designer l’expérimentation 1. Question 2. Périmètre 3. Mesure 4. Communiquer 5. Injecter 6. Analyser
  • 17. Expérimenter en continue Automatiser l’expérience pour qu’elle se réalise en continue afin de suivre l’évolution du système
  • 20. Chaos Monkey, Du concept à l’implémentation Benjamin Gakic Expert Sûreté de Fonctionnement & facilitateur - OUI.sncf
  • 21. 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
  • 22.
  • 23. La vrai question n’est pas de savoir si ça va tomber mais quand ça va tomber Werner Vogels: “Everything fails all the time” Si vous savez que ça va tomber, forcément vous en tenez compte CTO @Amazon
  • 24. Je n’ai pas d’auto scaling, je ne suis pas chez AWS, puis-je faire du chaos monkey?
  • 25. 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
  • 27. Le plus important n’est pas l’implémentation en elle-même mais la manière dont on implémente
  • 28. POC Squad inter-équipe dev & ops Développement en mode expérimental, à base de mini-hackatons Mars 2016 Mai 2017 Fin 2017 Janvier 2016 Octobre 2016 Février 2017
  • 29. 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 Fin 2017 Janvier 2016 Octobre 2016 Février 2017
  • 30. Grâce à la communauté nous disposons d’un bestiaire à l’image de la Simian army de Netflix Mars 2016 Mai 2017 Fin 2017 Janvier 2016 Octobre 2016 Février 2017
  • 31. 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 Fin 2017 Janvier 2016 Octobre 2016 Février 2017
  • 32. 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 Fin 2017 Janvier 2016 Octobre 2016 Février 2017
  • 33. Premier Chaos Monkey en production… …et la production marche toujours Mars 2016 Mai 2017 Fin 2017 Janvier 2016 Octobre 2016 Février 2017
  • 34. Nous prévoyons 5 applications exécutant régulièrement un chaos monkey en production Mars 2016 Mai 2017 Fin 2017 Janvier 2016 Octobre 2016 Février 2017
  • 35. #1 : Le Chaos Monkey n’est pas un outil de test
  • 36. #2 : Le Chaos Monkey ce n’est pas casser la prod juste pour s’amuser
  • 37. #3 : Le Chaos Monkey n’est pas un phénomène de mode, il s’inscrit dans une démarche
  • 38. Comme toute démarche, une action unique ne suffit pas
  • 39. Benjamin Gakic Expert Sûreté de Fonctionnement & facilitateur - OUI.sncf Days of Chaos Chapter One Vendredi 13 Janvier 2017
  • 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
  • 41. Résolution Dev Incident Ops Détection Dev Diagnostic Dev Remise en état... Validation Ops Gestion d’une panne Question bonus Vidéo explicative1 2 3
  • 42. Sans ops rien n’est possible! Impliquer Convaincre
  • 43. 43 pannes 8 short listées
  • 44.
  • 45.
  • 46. 113 joueurs 18 équipes 2 commentateurs 2 aides de camp 8 ops
  • 47.
  • 48. Objectif accompli ! Détection : 87% Diagnostic : 73% Résolution : 45%
  • 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
  • 50.
  • 51. Communication et marketing Cohésion intra et inter-équipes Gamification Points forts
  • 52. Fin du premier chapitre
  • 53. A vous d’organiser vos Days of Chaos! Partagez vos expériences sur http://days-of-chaos.com
  • 54. C’était le début de notre histoire… … pour commencer la vôtre, et si vous utilisiez un framework pour bootstrapper ?
  • 55. chaostoolkit Une API ouverte pour le Chaos Engineering © chaosiq 2017 - Sylvain Hellegouarch / sylvain@chaosiq.io
  • 58. Ce à quoi nous aspirons
  • 59. Au début on a un plan
  • 61. Mais après un certain temps
  • 62. Nous ne maîtrisons pas tout.
  • 68.
  • 71.
  • 74. Une API ouverte pour la chaos engineering
  • 77. Le chaostoolkit n’est pas prescriptif
  • 78. Le chaostoolkit s’adapte à vos environnements et process
  • 79. chaostookit en quelques mots • Open-Source (Apache v2) • Extensible (déjà Kubernetes, Gremlin, Prometheus, Kubesec…) • Plateforme agnostique • Python 3 • Workshop à Munich lundi 20/11 basé sur le chaostoolkit
  • 81. Une interface accessible de pilotage et d’apprentissage d’initiatives chaos engineering
  • 82. chaostoolkit - Collecter l’information Probes => pour interroger et collecter de l’information durant l’expérience "probes": { "close": { "title": "Fetch the CPU usage for our service", "layer": "application", "type": "python", "module": "chaosprometheus.probes", "func": "query", "arguments": { "query": "process_cpu_seconds_total{job='websvc'}", "when": "2 minutes ago" } } }
  • 83. chaostoolkit - Agir sur le système Actions => conditions de stress du système "action": { "title": "Let's max out the CPU of a node", "layer": "application", "type": "python", "module": "chaosgremlin.actions", "func": "attack", "background": true, "secrets": "gremlin", "arguments": { "command": { "type": "cpu" }, "target": { "type": "Random" } } }
  • 85. Merci pour votre attention
  • 86. JESSE ROBBINS Ex-Amazon « Master of disaster » Fondateur et CEO de OrionLabs Ancien pompier Créateur du concept de « GameDay » Merci aux papas du Chaos Engineering YURY IZRAILEVSKY Directeur Cloud & Infrastructure NETFLIX ARIEL TSEITLIN Directeur des solutions Cloud NETFLIX Créateurs du concept de « Chaos Monkey » « For every dollar spent in failure, learn a dollar’s worth of lesson. » “Our journey to the cloud at Netflix began in August of 2008, when we experienced a major database corruption and for three days could not ship DVDs to our members. That is when we realized that we had to move away from vertically scaled single points of failure, like relational databases in our datacenter, towards highly reliable, horizontally scalable, distributed systems in the cloud.”
  • 87. Merci à la nouvelle génération
  • 88. Pour continuer à échanger, rejoignez-nous sur le groupe Paris Chaos Engineering Meetup http://meetu.ps/c/3BMlX/xNjMx/f Merci à pour l’accueil et l’organisation de ce premier Meetup et…

Notes de l'éditeur

  1. Définir qu’elle est l’hypothèse que l’on veut expérimenter : souhaite-t-on tester la résilience d’un composant, d’une application, d’une organisation ? 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), 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, Prévenir l’organisation de l’existence de l’expérimentation – pour éviter l’escalade en cas d’incident critique Réaliser l’expérience Analyser les résultats, mettre en place les éventuels plans d’action nécessaires Elargir le scope pour la prochaine expérience. Automatiser l’expérience pour qu’elle se réalise en continue afin de suivre l’évolution du système.
  2. On veut de la séduction? Préparons notre jeu comme un jeu vidéo avec une vrai jaquette!
  3. 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
  4. 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!
  5. 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
  6. 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.
  7. 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
  8. 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
  9. 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.
  10. Un sujet difficile, peu motivant rendu plus accessible par la gamification