SlideShare une entreprise Scribd logo
1  sur  44
THEODO8/11/2013 1
Comment accélérer votre organisation informatique
Le miracle Devops
THEODO8/11/2013 2
Le besoin de vitesse en informatique
Le miracle Devops… et les preuves
Comment passer de junior dev à jedi devops ?
THEODO8/11/2013 3
Le métier a besoin de vitesse
Le besoin d’agilité
THEODO8/11/2013 4
Itérer en production est la seule façon d’être plus rapide que la
concurrence
Lean Startup
THEODO8/11/2013 5
Le développement agile ne produit que des « fausses »
itérations…
Développement agile
Source: http://www.mypmhome.com/scrum-methodology/
THEODO8/11/2013 6
…si les fonctionnalités s’empilent devant la DSI ops…
Les silos dev VS ops
THEODO8/11/2013 7
Les prophètes Scrum nous ont montré la voie, allons plus loin !
Au-delà de Scrum
THEODO8/11/2013 8
Le besoin de vitesse en informatique
Le miracle Devops… et les preuves
Comment passer de junior dev à jedi devops ?
THEODO8/11/2013 9
Le but de Devops : résoudre le problème des silos
La définition de Devops
Devops c’est
• Faire travailler toute l’organisation IT en équipe
• Avec un but commun : la performance technique
orientée business
THEODO8/11/2013 10
La trinité Devops : outils, process, culture
Les trois couches de Devops
Devops c’est
• Des outils: comment faire
• Des process : quand le faire
• La culture : pourquoi le faire
TOOL
S
PROCES
S
PEOPLE
DEVOP
S
THEODO8/11/2013 11
La culture est très importante : les devs et les ops sont
différents !
La problématique de culture
DHH, incarne ici le
développeur hipster
Stallman, incarne ici le guru
paranoïaque GNU/Linux
THEODO8/11/2013 12
Les devs pensent vitesse et court-terme
Le dev typique L’ops typique
Je viens de coder une super
fonctionnalité en
CouchDB/PouchDB/Node.js/S
3
Laisse moi le déployer
maintenant, le métier le veut
en ligne aujourd’hui !
La problématique de culture
THEODO8/11/2013 13
Les ops pensent stabilité et long-terme
CouchDB/PouchD
B/Node.js/S3???
Le dev typique L’ops typique
La problématique de culture
THEODO8/11/2013 14
S’ils ne s’entendent pas, on obtient ni l’un ni l’autre…
Et les
Backups?
Monitoring?
Performances?
Security?
Documentation?
Scalabilité?
Le métier
va pas être
content…
Le dev typique L’ops typique
La problématique de culture
THEODO8/11/2013 15
Devops n’est pas qu’un buzzword, c’est des résultats mesurés
Études Devops
• IT Ops & DevOps productivity report 2013 par RebelLabs auprès
de 620 ingénieurs
• 2013 State of DevOps Report par PuppetLabs & IT Revolution
Press auprès de 4000 ops et devs
• Et tous les témoignages des leaders du web comme Amazon,
Netflix, Etsy, Flickr, etc. (à la Velocity Conference, DevopsDays,
etc.)
THEODO8/11/2013 16
Les Devops déploient 30x plus fréquemment !
2013 State of Devops report par PuppetLabs et IT Revolution Press
Temps moyen entre déploiements
THEODO8/11/2013 17
Les Devops déploient 8000x plus vite !
Temps moyen passé à déployer
2013 State of Devops report par PuppetLabs et IT Revolution Press
THEODO8/11/2013 18
Les Devops ont 50% moins d’incidents !
Taux de déploiements ratés
2013 State of Devops report par PuppetLabs et IT Revolution Press
THEODO8/11/2013 19
Les Devops réparent 12x plus vite !
Temps moyen de résolution
2013 State of Devops report par PuppetLabs et IT Revolution Press
THEODO8/11/2013 20
Amazon déploie en moyenne 300 fois par heure !
Devops success stories
• Fondé en 1994, 61 G$ de CA en 2012
• Temps moyen entre déploiements : 11.6s (310 fois par heure)
• Nombre max de déploiements par heure : 1 079
• Nombre moyen de serveurs concernés à chaque déploiement :
10 000
http://assets.en.oreilly.com/1/event/60/Velocity%20Culture%20Presentation.pdf
http://en.wikipedia.org/wiki/Amazon.com
THEODO8/11/2013 21
Chez Etsy tout le monde déploie le premier jour !
Devops success stories
• Fondé en 2005, 1 G$ de transactions en 2013
• 250+ committers, tout le monde déploie
• 30+ déploiements par jours
• Tout le monde déploie le premier jour !
http://codeascraft.com/2012/03/13/making-it-virtually-easy-to-deploy-on-day-one/
https://speakerdeck.com/astanway/bring-the-noise-continuously-deploying-under-a-hailstorm-of-metrics
http://gigaom.com/2013/08/23/meet-the-man-behind-new-yorks-other-billion-dollar-internet-company-
this-one-makes-money/
THEODO8/11/2013 22
Le gouvernement anglais a réussi une adoption radicale de
Devops en moins d’un an !
Devops success stories
C’est quoi gov.uk? “The websites of all government departments and
many other agencies and public bodies”
• Alpha lancée en 2011 avec 4 devs. Site en prod en octobre 2012
• 15-20 déploiements par jour
• Leur argument clef en interne : plus rapide que les prestas !
• “on aimerait faire ça. Pouvez-vous dire si c’est faisable ? On se revoit dans un mois ?”
• -> construit, mis en prod en 3 jours
http://vimeo.com/album/2384821/video/66622266
https://github.com/philandstuff/devopsdaysparis#kushal-pisavadia-kushalp-how-we-ship-software-at-govuk
https://www.gov.uk/service-manual
THEODO8/11/2013 23
Le besoin de vitesse en informatique
Le miracle Devops… et les preuves
Comment passer de junior dev à jedi devops ?
THEODO8/11/2013 24
Démarrons par les concepts basiques à enseigner au dev junior
Le parcours classique du développeur
Le dev junior typique
• a appris Java pendant ses études
• utilise Windows… pour jouer
• a installé Linux par curiosité
• a maintenu un site web d’une assoce
pendant les études
• … et « déployait » par FTP !
Source: http://www.essentialbaby.com.au/
THEODO8/11/2013 25
Étape 0 : faire du bébé dev un dev adolescent
Les bases du développeur
• Environnement de dev Linux
• Versioning git
• Stratégie branching git
• Méthodologie Scrum
• Tests unitaires et fonctionnels
Source: http://www.aceshowbiz.com/
THEODO8/11/2013 26
Étape 1 : fournir un serveur pour jouer avec
Un serveur dédié par dev
• Une petite instance pour tous
• Libre de faire ce que vous voulez avec
• …tant que c’est légal…
«J’ai beaucoup appris quand j’ai commencé à
louer mon serveur dédié»
THEODO8/11/2013 27
Étape 2 : configurer le serveur… au moins deux fois
Bases de l’administration système
• Étonnant de voir le nombre de devs juniors qui n’ont jamais
configuré un serveur
• Au moins deux fois : pour avoir envie d’apprendre à provisionner
Ce que nous faisons :
• Première install simple Apache + mod_php
• Deuxième install plus subtile Nginx + fpm
THEODO8/11/2013 28
Étape 3 : amener les devs à déployer… et comprendre
comment ça fonctionne sous le capot
Déploiement automatisé
• Scripting shell : NON
• Capistrano: trop magique ?
• Fabric: bon compromis ?
Notre expérience : tous les projets ont un deploy.py script dans un
dossier «devops» (ou un Capfile…) :
• Tout le monde peut déployer
• Même si les juniors continuent à vérifier si un senior est dans le
coin avant de déployer…
THEODO8/11/2013 29
Fabric rend le déploiement automatique mais pas trop abstrait
Example de Fabric
@roles('prod')
def deploy():
tag = "%s/%s" % (_getrole(), strftime("%Y/%m-%d-%H-%M-%S"))
local('git tag -a %s -m "%s"' % (tag, _getrole()))
local('git push --tags')
run('git fetch’)
run('git fetch origin --tags')
run('git checkout ' + tag)
THEODO8/11/2013 30
Étape 4 : faire du monitoring une évidence
Monitoring
• Le monitoring est devenu simple : NewRelic et AppDynamics
• En en faisant une étape de base, vous transformez la culture des devs
• Accès facile aux problèmes de performances et erreurs 500 cachées
THEODO8/11/2013 31
Étape 5 : responsabiliser les devs sur l’intégration continue
Intégration continue
• Configurer Jenkins est simple : tous les
devs doivent devenir experts du sujet
• Ou sinon Travis-ci ? Bonne solution,
même si Jenkins est une compétence à
avoir
https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
THEODO8/11/2013 32
Étape 6 : normaliser les environnements avec Vagrant
VM de développement
• Macbook, Ubuntu, 32 bits,
memory_limit=2048M, ulimit…
• Les environnements de dev et de prod
diffèrent toujours de façon subtile
• Vagrant : emballe une VM VirtualBox
avec le même OS qu’en prod
• Bonus : « vagrant package » et vous pouvez partager votre VM avec
n’importe quel nouveau développeur, pour le rendre opérationnel
en quelques minutes
• Astuce de performance importante :
http://www.whitewashing.de/2013/08/19/speedup_symfony2_on_vagrant_boxes.html
THEODO8/11/2013 33
Les ops et les devs peuvent enfin approfondir leur collaboration
Feedback de la prod aux devs
THEODO8/11/2013 34
Étape 7 : utiliser Vagrant avec Puppet/Chef/Ansible/Docker
Provisioning automatique
• Puppet (ouChef) sont douloureux pour un dev… d’où la nécessité initiale
de répéter la config manuelle pour la rendre aussi douloureuse !
• Faire faire un template Puppet/Chef par un ops expérimenté
• Le faire challenger par un dev expérimenté pour la simplifier !
?
THEODO8/11/2013 35
Étape 8 : passer au self-service
Infrastructure as a Service
• Public cloud ou private cloud
• OpenStack est enfin mûr !
THEODO8/11/2013 36
Étape 9 : rendre la backup facile
Backups
• S3 / Swift pour pousser les backups
• Ou des solutions comme Idera
ServerBackup
THEODO8/11/2013 37
Étape 10 : créer un self-service de tests de montée en charge
Performance
• Créer un accès facile (VNC) à un serveur avec Jmeter et une
bonne bande passante
• Les ops enseignent aux devs comment faire des scénarios de
montée en charge
• Les tests de montée en charge doivent être faits régulièrement,
dev et ops ensemble
THEODO8/11/2013 38
Étape 11 : encourager le pair-devopsing
Pair devopsing
• Les devs ont des problèmes de Puppet/Chef?
• La montée en charge montre un problème subtil ?
• Les ops voient des comportements cryptiques dans les logs ?
Pair devopsing!
• Compatible Scrum
• Nécessite des gens curieux
recrutez des gens curieux !
Source: http://www.turnbacktogod.com
THEODO8/11/2013 39
Étape 12 : le management visuel comme objectif commun
Techniques de management visuel
Exemple : comment les devs s’impliquent dans la performance ?
En faire déjà un pré-requis du DONE
Inclure les solutions de performance dans le provisioning standard
ET faire des graphes de performances visibles
THEODO8/11/2013 40
Et après, comment impliquer les devs sur la production ?
Partager les responsabilités
Pourquoi les ops sont-ils aussi impliqués, et pas les devs ?
Dev: «C’est pas mon job»
… c’est au métier de décider si élargir l’astreinte aux devs vaut le coup.
THEODO8/11/2013 41
Prochaines étapes : apprendres des leaders du web
Sources
• Conférences Velocity
• http://lanyrd.com/2013/velocity/coverage/
• http://lanyrd.com/2012/velocity/coverage/
• Etc.
• Gene Kim, “Top 11 things you need to know”
• http://www.thinkhdi.com/~/media/HDICorp/Files/White-
Papers/whtppr-1112-devops-kim.pdf
• Blog Etsy : http://codeascraft.com/
• Blog Netflix : http://techblog.netflix.com/
THEODO8/11/2013 42
Itérer pour s’améliorer continuement
Amélioration continue
Scrum, Devops, Lean Startup : tout est question d’amélioration
continue !
• Tout mesurer
• Identifier les problèmes
• Tester des contre-mesures
Et itérer
THEODO8/11/2013 43
Et j’espère vous avoir convaincu de l’existence de la force...
Devops
La force Devops
Werner Vogels, CTO Amazon, 300+ déploiements par heure
THEODO8/11/2013 44
Questions ?
fabriceb@theodo.fr
@theodo
www.theodo.fr

Contenu connexe

En vedette

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

En vedette (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Le miracle Devops - Symfony Live Paris 2014

  • 1. THEODO8/11/2013 1 Comment accélérer votre organisation informatique Le miracle Devops
  • 2. THEODO8/11/2013 2 Le besoin de vitesse en informatique Le miracle Devops… et les preuves Comment passer de junior dev à jedi devops ?
  • 3. THEODO8/11/2013 3 Le métier a besoin de vitesse Le besoin d’agilité
  • 4. THEODO8/11/2013 4 Itérer en production est la seule façon d’être plus rapide que la concurrence Lean Startup
  • 5. THEODO8/11/2013 5 Le développement agile ne produit que des « fausses » itérations… Développement agile Source: http://www.mypmhome.com/scrum-methodology/
  • 6. THEODO8/11/2013 6 …si les fonctionnalités s’empilent devant la DSI ops… Les silos dev VS ops
  • 7. THEODO8/11/2013 7 Les prophètes Scrum nous ont montré la voie, allons plus loin ! Au-delà de Scrum
  • 8. THEODO8/11/2013 8 Le besoin de vitesse en informatique Le miracle Devops… et les preuves Comment passer de junior dev à jedi devops ?
  • 9. THEODO8/11/2013 9 Le but de Devops : résoudre le problème des silos La définition de Devops Devops c’est • Faire travailler toute l’organisation IT en équipe • Avec un but commun : la performance technique orientée business
  • 10. THEODO8/11/2013 10 La trinité Devops : outils, process, culture Les trois couches de Devops Devops c’est • Des outils: comment faire • Des process : quand le faire • La culture : pourquoi le faire TOOL S PROCES S PEOPLE DEVOP S
  • 11. THEODO8/11/2013 11 La culture est très importante : les devs et les ops sont différents ! La problématique de culture DHH, incarne ici le développeur hipster Stallman, incarne ici le guru paranoïaque GNU/Linux
  • 12. THEODO8/11/2013 12 Les devs pensent vitesse et court-terme Le dev typique L’ops typique Je viens de coder une super fonctionnalité en CouchDB/PouchDB/Node.js/S 3 Laisse moi le déployer maintenant, le métier le veut en ligne aujourd’hui ! La problématique de culture
  • 13. THEODO8/11/2013 13 Les ops pensent stabilité et long-terme CouchDB/PouchD B/Node.js/S3??? Le dev typique L’ops typique La problématique de culture
  • 14. THEODO8/11/2013 14 S’ils ne s’entendent pas, on obtient ni l’un ni l’autre… Et les Backups? Monitoring? Performances? Security? Documentation? Scalabilité? Le métier va pas être content… Le dev typique L’ops typique La problématique de culture
  • 15. THEODO8/11/2013 15 Devops n’est pas qu’un buzzword, c’est des résultats mesurés Études Devops • IT Ops & DevOps productivity report 2013 par RebelLabs auprès de 620 ingénieurs • 2013 State of DevOps Report par PuppetLabs & IT Revolution Press auprès de 4000 ops et devs • Et tous les témoignages des leaders du web comme Amazon, Netflix, Etsy, Flickr, etc. (à la Velocity Conference, DevopsDays, etc.)
  • 16. THEODO8/11/2013 16 Les Devops déploient 30x plus fréquemment ! 2013 State of Devops report par PuppetLabs et IT Revolution Press Temps moyen entre déploiements
  • 17. THEODO8/11/2013 17 Les Devops déploient 8000x plus vite ! Temps moyen passé à déployer 2013 State of Devops report par PuppetLabs et IT Revolution Press
  • 18. THEODO8/11/2013 18 Les Devops ont 50% moins d’incidents ! Taux de déploiements ratés 2013 State of Devops report par PuppetLabs et IT Revolution Press
  • 19. THEODO8/11/2013 19 Les Devops réparent 12x plus vite ! Temps moyen de résolution 2013 State of Devops report par PuppetLabs et IT Revolution Press
  • 20. THEODO8/11/2013 20 Amazon déploie en moyenne 300 fois par heure ! Devops success stories • Fondé en 1994, 61 G$ de CA en 2012 • Temps moyen entre déploiements : 11.6s (310 fois par heure) • Nombre max de déploiements par heure : 1 079 • Nombre moyen de serveurs concernés à chaque déploiement : 10 000 http://assets.en.oreilly.com/1/event/60/Velocity%20Culture%20Presentation.pdf http://en.wikipedia.org/wiki/Amazon.com
  • 21. THEODO8/11/2013 21 Chez Etsy tout le monde déploie le premier jour ! Devops success stories • Fondé en 2005, 1 G$ de transactions en 2013 • 250+ committers, tout le monde déploie • 30+ déploiements par jours • Tout le monde déploie le premier jour ! http://codeascraft.com/2012/03/13/making-it-virtually-easy-to-deploy-on-day-one/ https://speakerdeck.com/astanway/bring-the-noise-continuously-deploying-under-a-hailstorm-of-metrics http://gigaom.com/2013/08/23/meet-the-man-behind-new-yorks-other-billion-dollar-internet-company- this-one-makes-money/
  • 22. THEODO8/11/2013 22 Le gouvernement anglais a réussi une adoption radicale de Devops en moins d’un an ! Devops success stories C’est quoi gov.uk? “The websites of all government departments and many other agencies and public bodies” • Alpha lancée en 2011 avec 4 devs. Site en prod en octobre 2012 • 15-20 déploiements par jour • Leur argument clef en interne : plus rapide que les prestas ! • “on aimerait faire ça. Pouvez-vous dire si c’est faisable ? On se revoit dans un mois ?” • -> construit, mis en prod en 3 jours http://vimeo.com/album/2384821/video/66622266 https://github.com/philandstuff/devopsdaysparis#kushal-pisavadia-kushalp-how-we-ship-software-at-govuk https://www.gov.uk/service-manual
  • 23. THEODO8/11/2013 23 Le besoin de vitesse en informatique Le miracle Devops… et les preuves Comment passer de junior dev à jedi devops ?
  • 24. THEODO8/11/2013 24 Démarrons par les concepts basiques à enseigner au dev junior Le parcours classique du développeur Le dev junior typique • a appris Java pendant ses études • utilise Windows… pour jouer • a installé Linux par curiosité • a maintenu un site web d’une assoce pendant les études • … et « déployait » par FTP ! Source: http://www.essentialbaby.com.au/
  • 25. THEODO8/11/2013 25 Étape 0 : faire du bébé dev un dev adolescent Les bases du développeur • Environnement de dev Linux • Versioning git • Stratégie branching git • Méthodologie Scrum • Tests unitaires et fonctionnels Source: http://www.aceshowbiz.com/
  • 26. THEODO8/11/2013 26 Étape 1 : fournir un serveur pour jouer avec Un serveur dédié par dev • Une petite instance pour tous • Libre de faire ce que vous voulez avec • …tant que c’est légal… «J’ai beaucoup appris quand j’ai commencé à louer mon serveur dédié»
  • 27. THEODO8/11/2013 27 Étape 2 : configurer le serveur… au moins deux fois Bases de l’administration système • Étonnant de voir le nombre de devs juniors qui n’ont jamais configuré un serveur • Au moins deux fois : pour avoir envie d’apprendre à provisionner Ce que nous faisons : • Première install simple Apache + mod_php • Deuxième install plus subtile Nginx + fpm
  • 28. THEODO8/11/2013 28 Étape 3 : amener les devs à déployer… et comprendre comment ça fonctionne sous le capot Déploiement automatisé • Scripting shell : NON • Capistrano: trop magique ? • Fabric: bon compromis ? Notre expérience : tous les projets ont un deploy.py script dans un dossier «devops» (ou un Capfile…) : • Tout le monde peut déployer • Même si les juniors continuent à vérifier si un senior est dans le coin avant de déployer…
  • 29. THEODO8/11/2013 29 Fabric rend le déploiement automatique mais pas trop abstrait Example de Fabric @roles('prod') def deploy(): tag = "%s/%s" % (_getrole(), strftime("%Y/%m-%d-%H-%M-%S")) local('git tag -a %s -m "%s"' % (tag, _getrole())) local('git push --tags') run('git fetch’) run('git fetch origin --tags') run('git checkout ' + tag)
  • 30. THEODO8/11/2013 30 Étape 4 : faire du monitoring une évidence Monitoring • Le monitoring est devenu simple : NewRelic et AppDynamics • En en faisant une étape de base, vous transformez la culture des devs • Accès facile aux problèmes de performances et erreurs 500 cachées
  • 31. THEODO8/11/2013 31 Étape 5 : responsabiliser les devs sur l’intégration continue Intégration continue • Configurer Jenkins est simple : tous les devs doivent devenir experts du sujet • Ou sinon Travis-ci ? Bonne solution, même si Jenkins est une compétence à avoir https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
  • 32. THEODO8/11/2013 32 Étape 6 : normaliser les environnements avec Vagrant VM de développement • Macbook, Ubuntu, 32 bits, memory_limit=2048M, ulimit… • Les environnements de dev et de prod diffèrent toujours de façon subtile • Vagrant : emballe une VM VirtualBox avec le même OS qu’en prod • Bonus : « vagrant package » et vous pouvez partager votre VM avec n’importe quel nouveau développeur, pour le rendre opérationnel en quelques minutes • Astuce de performance importante : http://www.whitewashing.de/2013/08/19/speedup_symfony2_on_vagrant_boxes.html
  • 33. THEODO8/11/2013 33 Les ops et les devs peuvent enfin approfondir leur collaboration Feedback de la prod aux devs
  • 34. THEODO8/11/2013 34 Étape 7 : utiliser Vagrant avec Puppet/Chef/Ansible/Docker Provisioning automatique • Puppet (ouChef) sont douloureux pour un dev… d’où la nécessité initiale de répéter la config manuelle pour la rendre aussi douloureuse ! • Faire faire un template Puppet/Chef par un ops expérimenté • Le faire challenger par un dev expérimenté pour la simplifier ! ?
  • 35. THEODO8/11/2013 35 Étape 8 : passer au self-service Infrastructure as a Service • Public cloud ou private cloud • OpenStack est enfin mûr !
  • 36. THEODO8/11/2013 36 Étape 9 : rendre la backup facile Backups • S3 / Swift pour pousser les backups • Ou des solutions comme Idera ServerBackup
  • 37. THEODO8/11/2013 37 Étape 10 : créer un self-service de tests de montée en charge Performance • Créer un accès facile (VNC) à un serveur avec Jmeter et une bonne bande passante • Les ops enseignent aux devs comment faire des scénarios de montée en charge • Les tests de montée en charge doivent être faits régulièrement, dev et ops ensemble
  • 38. THEODO8/11/2013 38 Étape 11 : encourager le pair-devopsing Pair devopsing • Les devs ont des problèmes de Puppet/Chef? • La montée en charge montre un problème subtil ? • Les ops voient des comportements cryptiques dans les logs ? Pair devopsing! • Compatible Scrum • Nécessite des gens curieux recrutez des gens curieux ! Source: http://www.turnbacktogod.com
  • 39. THEODO8/11/2013 39 Étape 12 : le management visuel comme objectif commun Techniques de management visuel Exemple : comment les devs s’impliquent dans la performance ? En faire déjà un pré-requis du DONE Inclure les solutions de performance dans le provisioning standard ET faire des graphes de performances visibles
  • 40. THEODO8/11/2013 40 Et après, comment impliquer les devs sur la production ? Partager les responsabilités Pourquoi les ops sont-ils aussi impliqués, et pas les devs ? Dev: «C’est pas mon job» … c’est au métier de décider si élargir l’astreinte aux devs vaut le coup.
  • 41. THEODO8/11/2013 41 Prochaines étapes : apprendres des leaders du web Sources • Conférences Velocity • http://lanyrd.com/2013/velocity/coverage/ • http://lanyrd.com/2012/velocity/coverage/ • Etc. • Gene Kim, “Top 11 things you need to know” • http://www.thinkhdi.com/~/media/HDICorp/Files/White- Papers/whtppr-1112-devops-kim.pdf • Blog Etsy : http://codeascraft.com/ • Blog Netflix : http://techblog.netflix.com/
  • 42. THEODO8/11/2013 42 Itérer pour s’améliorer continuement Amélioration continue Scrum, Devops, Lean Startup : tout est question d’amélioration continue ! • Tout mesurer • Identifier les problèmes • Tester des contre-mesures Et itérer
  • 43. THEODO8/11/2013 43 Et j’espère vous avoir convaincu de l’existence de la force... Devops La force Devops Werner Vogels, CTO Amazon, 300+ déploiements par heure