Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Deployer en continu, Benoît Lafontaine, USIEVENT 2013

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Les vidéos YouTube ne sont plus prises en charge sur SlideShare

Regarder la vidéo sur YouTube

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 jou...
Chargement dans…3
×

Consultez-les par la suite

1 sur 68 Publicité

Plus De Contenu Connexe

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

Publicité

Plus récents (20)

Deployer en continu, Benoît Lafontaine, USIEVENT 2013

  1. 1. Déployer en continu Benoît Lafontaine OCTO Technology
  2. 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)
  3. 3. Définitions
  4. 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. 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. 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 !!!
  7. 7. POURQUOI, POURQUOI, POURQUOI ?
  8. 8. Feedback
  9. 9. C’est pas déjà ce qu’on fait avec les méthodes Agiles ?
  10. 10. Code produit Temps
  11. 11. Code produit Temps Code livré
  12. 12. Code produit Temps Dev Code livré
  13. 13. Code produit Temps Dev ??? Code livré
  14. 14. Code produit Temps Code livré
  15. 15. Code produit Temps Code livré Dev FEEDBACKS
  16. 16. Pourquoi on le fait pas ?
  17. 17. La peur
  18. 18. Perte de temps
  19. 19. Qualité ?
  20. 20. Code produit Temps Code livré
  21. 21. Code produit Temps Code livré Beaucoup de changements = Beaucoup de risques
  22. 22. Code produit Temps Code livré
  23. 23. Code produit Temps Code livré Peu de changements = Peu de risques
  24. 24. John Allspaw, Etsy http://www.slideshare.net/jallspaw/ops-metametrics-the-currency-you-pay-for-change
  25. 25. Réduire la taille des déploiements… Minimise les risques Réduit le « Time To Repair » (TTR) Réduit le temps d’indisponibilité
  26. 26. 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
  27. 27. COMMENT, COMMENT, COMMENT ?
  28. 28. Automatiser !
  29. 29. DEVOPS
  30. 30. Déployer en 1 clic
  31. 31. QUESTIONS, QUESTIONS, QUESTIONS !!!
  32. 32. Question#1 : 0 commits ?
  33. 33. Vas-y commit…
  34. 34. Garantir la qualité Intégration continue TESTS ! (automatisés bien sûr) !   TDD !   Tests d’IHM !   Tests de performance !   …
  35. 35. Garantir la qualité
  36. 36. Question #2 : En construction ?
  37. 37. dissocier le déploiement de code de l'activation de fonctionnalité
  38. 38. Feature flipping
  39. 39. Flipping code
  40. 40. Question #3 : Downtime ?
  41. 41. Blue green deployment
  42. 42. Question #4 : Migration de schémas de BDD ?
  43. 43. Migration de schéma : solution Séparer les scripts de migration en !   Scripts d’expansion (ADD) !   Scripts de contraction (DROP) !   ALTER
  44. 44. Cas d’exemple
  45. 45. Exemple : Modification du champs adresse Version N Ecriture Lecture
  46. 46. Exemple : Modification du champs adresse Version N Ecriture Lecture
  47. 47. Exemple : Modification du champs adresse Version N+1 Ecriture Lecture
  48. 48. Exemple : Modification du champs adresse Version N+2 Lecture Ecriture
  49. 49. Exemple : Modification du champs adresse Version N+2 Lecture Ecriture
  50. 50. Exemple : Modification du champs adresse Version N+2 Lecture Ecriture
  51. 51. Question #5 : Est-ce qu’on active ?
  52. 52. Canary Release
  53. 53. Question #6 : Et si ça explose ?
  54. 54. Rappel : réduire la taille des déploiements réduit les risques
  55. 55. Mesurer et superviser
  56. 56. Arrêt d’urgence
  57. 57. 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 »
  58. 58. N’accepter l’erreur qu’une seule fois 1 erreur => 1 action
  59. 59. Question #7 : Rollback ?
  60. 60. “we don’t roll back, we fix the code” John Allspaw - Etsy
  61. 61. Take away : pourquoi déployer en continu Gagner en temps Gagner en qualité Plus de feedbacks
  62. 62. 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
  63. 63. Merci Benoît Lafontaine bla@octo.com @joel1di1 https://github.com/joel1di1

Notes de l'éditeur

  • 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

×