44
THEODO 8/11/2013 1 Comment accélérer votre organisation informatique Le miracle Devops

Le miracle Devops - Symfony Live Paris 2014

Embed Size (px)

DESCRIPTION

Réussir dans l'économie digitale, c'est aller plus vite que la concurrence en itérant le plus rapidement possible en production, pour apprendre en permanence des utilisateurs. C'est le message du Lean Startup. Techniquement, pour y arriver, il faut mobiliser toute l'organisation informatique derrière cet objectif. C'est le but de la philosophie Devops. La présentation s'intéresse au contexte qui a fait émerger le Devops et expose un plan de formation, étapes par étapes, pour transformer un junior dev en jedi devops.

Citation preview

Page 1: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 1

Comment accélérer votre organisation informatiqueLe miracle Devops

Page 2: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 2

Le besoin de vitesse en informatique

Le miracle Devops… et les preuves

Comment passer de junior dev à jedi devops ?

Page 3: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 3

Le métier a besoin de vitesseLe besoin d’agilité

Page 4: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 4

Itérer en production est la seule façon d’être plus rapide que la concurrenceLean Startup

Page 5: Le miracle Devops - Symfony Live Paris 2014

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/

Page 6: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 6

…si les fonctionnalités s’empilent devant la DSI ops…Les silos dev VS ops

Page 7: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 7

Les prophètes Scrum nous ont montré la voie, allons plus loin !Au-delà de Scrum

Page 8: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 8

Le besoin de vitesse en informatique

Le miracle Devops… et les preuves

Comment passer de junior dev à jedi devops ?

Page 9: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 9

Le but de Devops : résoudre le problème des silosLa 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

Page 10: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 10

La trinité Devops : outils, process, cultureLes trois couches de Devops

Devops c’est• Des outils: comment faire• Des process : quand le faire• La culture : pourquoi le faire

TOOLS

PROCESS

PEOPLE

DEVOPS

Page 11: Le miracle Devops - Symfony Live Paris 2014

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

Page 12: Le miracle Devops - Symfony Live Paris 2014

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/S3

Laisse moi le déployer maintenant, le métier le veut

en ligne aujourd’hui !

La problématique de culture

Page 13: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 13

Les ops pensent stabilité et long-terme

CouchDB/PouchDB/

Node.js/S3???

Le dev typique L’ops typique

La problématique de culture

Page 14: Le miracle Devops - Symfony Live Paris 2014

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

Page 15: Le miracle Devops - Symfony Live Paris 2014

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.)

Page 16: Le miracle Devops - Symfony Live Paris 2014

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

Page 17: Le miracle Devops - Symfony Live Paris 2014

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

Page 18: Le miracle Devops - Symfony Live Paris 2014

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

Page 19: Le miracle Devops - Symfony Live Paris 2014

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

Page 20: Le miracle Devops - Symfony Live Paris 2014

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.pdfhttp://en.wikipedia.org/wiki/Amazon.com

Page 21: Le miracle Devops - Symfony Live Paris 2014

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-metricshttp://gigaom.com/2013/08/23/meet-the-man-behind-new-yorks-other-billion-dollar-internet-company-this-one-makes-money/

Page 22: Le miracle Devops - Symfony Live Paris 2014

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/66622266https://github.com/philandstuff/devopsdaysparis#kushal-pisavadia-kushalp-how-we-ship-software-at-govukhttps://www.gov.uk/service-manual

Page 23: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 23

Le besoin de vitesse en informatique

Le miracle Devops… et les preuves

Comment passer de junior dev à jedi devops ?

Page 24: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 24

Démarrons par les concepts basiques à enseigner au dev juniorLe 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/

Page 25: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 25

Étape 0 : faire du bébé dev un dev adolescentLes 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/

Page 26: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 26

Étape 1 : fournir un serveur pour jouer avecUn 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é»

Page 27: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 27

Étape 2 : configurer le serveur… au moins deux foisBases 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

Page 28: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 28

Étape 3 : amener les devs à déployer… et comprendre comment ça fonctionne sous le capotDé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…

Page 29: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 29

Fabric rend le déploiement automatique mais pas trop abstraitExample 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)

Page 30: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 30

Étape 4 : faire du monitoring une évidenceMonitoring

• 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

Page 31: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 31

Étape 5 : responsabiliser les devs sur l’intégration continueInté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

Page 32: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 32

Étape 6 : normaliser les environnements avec VagrantVM 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

Page 33: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 33

Les ops et les devs peuvent enfin approfondir leur collaborationFeedback de la prod aux devs

Page 34: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 34

Étape 7 : utiliser Vagrant avec Puppet/Chef/Ansible/DockerProvisioning 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 !

?

Page 35: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 35

Étape 8 : passer au self-serviceInfrastructure as a Service

• Public cloud ou private cloud• OpenStack est enfin mûr !

Page 36: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 36

Étape 9 : rendre la backup facileBackups

• S3 / Swift pour pousser les backups• Ou des solutions comme Idera

ServerBackup

Page 37: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 37

Étape 10 : créer un self-service de tests de montée en chargePerformance

• 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

Page 38: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 38

Étape 11 : encourager le pair-devopsingPair 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

Page 39: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 39

Étape 12 : le management visuel comme objectif communTechniques 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

Page 40: Le miracle Devops - Symfony Live Paris 2014

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.

Page 41: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 41

Prochaines étapes : apprendres des leaders du webSources

• 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/

Page 42: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 42

Itérer pour s’améliorer continuementAmé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

Page 43: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 43

Et j’espère vous avoir convaincu de l’existence de la force... DevopsLa force Devops

Werner Vogels, CTO Amazon, 300+ déploiements par heure

Page 44: Le miracle Devops - Symfony Live Paris 2014

THEODO8/11/2013 44

Questions [email protected]

@theodowww.theodo.fr