SlideShare une entreprise Scribd logo
Déployer en continu
Benoît Lafontaine
OCTO Technology
Quelques chiffres
Facebook : > 2 déploiements par jour
Flick : > 10 déploiements par jour
Etsy : > 25 déploiements par jour
Amazon :
(1 déploiement toutes les 10 secondes sur 10000 machines)
Définitions
Continuous integration
A intervalle régulier, voire à chaque commit,
le code est :
!   Compilé
!   Testé
!   Assemblé
!   Déployé sur un environnement d’intégration
Continuous delivery
A intervalle régulier, voire à chaque commit,
le code est :
!   Compilé
!   Testé
!   Assemblé
!   Déployé sur un environnement d’intégration
!  Livré à l’équipe suivante (QA, MEP…)
Continuous deployment
A intervalle régulier, voire à chaque commit,
le code est :
!   Compilé
!   Testé
!   Assemblé
!   Déployé sur un environnement d’intégration
!   Testé sur cet environnement (automatiquement)
!  Déployé en production !!!
POURQUOI,
POURQUOI,
POURQUOI ?
Feedback
C’est pas déjà ce qu’on fait
avec les méthodes Agiles ?
Code produit
Temps
Code produit
Temps
Code livré
Code produit
Temps
Dev
Code livré
Code produit
Temps
Dev ???
Code livré
Code produit
Temps
Code livré
Code produit
Temps
Code livré
Dev FEEDBACKS
Pourquoi on le fait pas ?
La peur
Perte de temps
Qualité ?
Code produit
Temps
Code livré
Code produit
Temps
Code livré
Beaucoup de changements
=
Beaucoup de risques
Code produit
Temps
Code livré
Code produit
Temps
Code livré
Peu de changements
=
Peu de risques
John Allspaw, Etsy
http://www.slideshare.net/jallspaw/ops-metametrics-the-currency-you-pay-for-change
Réduire la taille des déploiements…
Minimise les risques
Réduit le « Time To Repair » (TTR)
Réduit le temps d’indisponibilité
Déployer en continu c’est :
Construire un meilleur produit grâce à plus de feedbacks
Gagner du temps en huilant son processus de déploiement
Améliorer la qualité en limitant les risques d’une livraison
COMMENT,
COMMENT,
COMMENT ?
Automatiser !
DEVOPS
Déployer en 1 clic
QUESTIONS,
QUESTIONS,
QUESTIONS !!!
Question#1 : 0 commits ?
Vas-y commit…
Garantir la qualité
Intégration continue
TESTS ! (automatisés bien sûr)
!   TDD
!   Tests d’IHM
!   Tests de performance
!   …
Garantir la qualité
Question #2 : En construction ?
dissocier le déploiement de code
de l'activation de fonctionnalité
Feature flipping
Flipping code
Question #3 : Downtime ?
Blue green deployment
Question #4 : Migration de schémas de BDD ?
Migration de schéma : solution
Séparer les scripts de migration en
!   Scripts d’expansion (ADD)
!   Scripts de contraction (DROP)
!   ALTER
Cas d’exemple
Exemple : Modification du champs adresse
Version N
Ecriture
Lecture
Exemple : Modification du champs adresse
Version N
Ecriture
Lecture
Exemple : Modification du champs adresse
Version N+1
Ecriture
Lecture
Exemple : Modification du champs adresse
Version N+2
Lecture
Ecriture
Exemple : Modification du champs adresse
Version N+2
Lecture
Ecriture
Exemple : Modification du champs adresse
Version N+2
Lecture
Ecriture
Question #5 : Est-ce qu’on active ?
Canary Release
Question #6 : Et si ça explose ?
Rappel : réduire la taille des
déploiements réduit les risques
Mesurer et superviser
Arrêt d’urgence
Toute anomalie en production provoque
!  une alerte visible par tous
!  L’arrêt d’urgence, on ne peut plus commiter
« L’objectif est d’aller aussi vite que possible
pour produire du code de qualité, pas plus
vite »
N’accepter l’erreur qu’une seule fois
1 erreur => 1 action
Question #7 : Rollback ?
“we don’t roll back,
we fix the code”
John Allspaw - Etsy
Take away : pourquoi déployer en continu
Gagner en temps
Gagner en qualité
Plus de feedbacks
Take away : comment déployer en continu
!   Automatisez vos déploiements
!   Dissociez la livraison de code et l’activation de
fonctionnalité avec du feature flipping
!   Sécurisez les déploiements avec les tests et les
patterns de déploiements (blue-green, canary
release)
!   Profitez des erreurs pour améliorer votre processus
Merci
Benoît Lafontaine
bla@octo.com
@joel1di1
https://github.com/joel1di1

Contenu connexe

Tendances

Dev dev devs
Dev dev devsDev dev devs
Dev dev devs
Vincent Tollu
 
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
Yasmine Amrani
 
Pourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre codePourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre code
Rémi Lesieur
 
Agile France - Software Craftsmanship - Juin 2019
Agile France - Software Craftsmanship - Juin 2019Agile France - Software Craftsmanship - Juin 2019
Agile France - Software Craftsmanship - Juin 2019
ffaure32
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
Jonathan Bonzy
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
Xavier NOPRE
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatisé
Jérémie Campari
 
[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)
Cellenza
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
Olivier BAZOUD
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Denis Voituron
 

Tendances (12)

Dev dev devs
Dev dev devsDev dev devs
Dev dev devs
 
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
 
Pourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre codePourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre code
 
Agile France - Software Craftsmanship - Juin 2019
Agile France - Software Craftsmanship - Juin 2019Agile France - Software Craftsmanship - Juin 2019
Agile France - Software Craftsmanship - Juin 2019
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Normandy JUG integration Continue
Normandy JUG integration ContinueNormandy JUG integration Continue
Normandy JUG integration Continue
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatisé
 
[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 
TDD en 5 minutes
TDD en 5 minutesTDD en 5 minutes
TDD en 5 minutes
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
 

Similaire à Deployer en continu, Benoît Lafontaine, USIEVENT 2013

Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
kemenaran
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & ops
Quentin Adam
 
Retour BreizhCamp 2023
Retour BreizhCamp 2023 Retour BreizhCamp 2023
Retour BreizhCamp 2023
SpikeeLabs
 
devops.pdf
devops.pdfdevops.pdf
devops.pdf
qsdqsd4
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - Introduction
Olivier ETIENNE
 
L'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
L'envers du décor : le Modern-ALM dans - et par - les équipes produits MicrosoftL'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
L'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
Microsoft
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
Emmanuel Hugonnet
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Samuel Metias
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
Sylvain Leroy
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
Emmanuel Hugonnet
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014
Jonathan Martin
 
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
 
Devops chez Voyages-Sncf.com
Devops chez Voyages-Sncf.comDevops chez Voyages-Sncf.com
Devops chez Voyages-Sncf.com
antony_guilloteau
 
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Arnaud Huon
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
neuros
 
Kanban, un outil simple de gestion de la production.
Kanban, un outil simple de gestion de la production.Kanban, un outil simple de gestion de la production.
Kanban, un outil simple de gestion de la production.
Blackbird
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
Arnaud Héritier
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
Microsoft
 

Similaire à Deployer en continu, Benoît Lafontaine, USIEVENT 2013 (20)

Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & ops
 
Retour BreizhCamp 2023
Retour BreizhCamp 2023 Retour BreizhCamp 2023
Retour BreizhCamp 2023
 
devops.pdf
devops.pdfdevops.pdf
devops.pdf
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - Introduction
 
L'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
L'envers du décor : le Modern-ALM dans - et par - les équipes produits MicrosoftL'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
L'envers du décor : le Modern-ALM dans - et par - les équipes produits Microsoft
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014
 
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 ?
 
Devops chez Voyages-Sncf.com
Devops chez Voyages-Sncf.comDevops chez Voyages-Sncf.com
Devops chez Voyages-Sncf.com
 
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
Kanban, un outil simple de gestion de la production.
Kanban, un outil simple de gestion de la production.Kanban, un outil simple de gestion de la production.
Kanban, un outil simple de gestion de la production.
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 

Deployer en continu, Benoît Lafontaine, USIEVENT 2013

Notes de l'éditeur

  1. Facebook : > 2 déploiements par jourFlick : > 10 déploiements par jourEtsy : > 25 déploiements par jourAmazon : (1 déploiement toutes les 10 secondes sur 10000 machines)
  2. Facebook : > 2 déploiements par jourFlick : > 10 déploiements par jourEtsy : > 25 déploiements par jour2012 : ~6500 déploiements~400 employés196 pers différentes ont effectué un déployementAmazon : (1 déploiement toutes les 10 secondes sur 10000 machines)
  3. Mary et tom poppendieckProjet ou ca met plusieurs jours (voire des semaines) a 1 ou plusieurs personnes pour mettre en production
  4. Sur Appaloosa, on faisait des itérations d’une semaine.La livraison prenait entre 2H et 4H (merge le code, faire passer les test)
  5. Ou par exemple, la prod ne ressemble pas du tout aux env de dev et que les équipes sont séparés, des fois meme sur des lieux géographiques différents