Presentation played at USIEVENT 2013, see the presentation on youtube: http://www.youtube.com/watch?v=UcDtH5s406M&feature=share&list=PLyzb9DL11tdZBlz6nY8TZxMcqVf04K5wY
2. 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)
4. Continuous integration
A intervalle régulier, voire à chaque commit,
le code est :
! Compilé
! Testé
! Assemblé
! Déployé sur un environnement d’intégration
5. 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…)
6. 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 !!!
27. Réduire la taille des déploiements…
Minimise les risques
Réduit le « Time To Repair » (TTR)
Réduit le temps d’indisponibilité
28. 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
61. 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 »
64. “we don’t roll back,
we fix the code”
John Allspaw - Etsy
65. Take away : pourquoi déployer en continu
Gagner en temps
Gagner en qualité
Plus de feedbacks
66. 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
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)
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)
Mary et tom poppendieckProjet ou ca met plusieurs jours (voire des semaines) a 1 ou plusieurs personnes pour mettre en production
Sur Appaloosa, on faisait des itérations d’une semaine.La livraison prenait entre 2H et 4H (merge le code, faire passer les test)
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