Commit 7d030886 authored by Rémi Cailletaud's avatar Rémi Cailletaud
Browse files

maybe final version ?

parent 9a26c489
......@@ -4,8 +4,8 @@ header-includes:
- '\usepackage[fixed]{fontawesome5}'
- '\definecolor{links}{HTML}{661100}'
- '\hypersetup{colorlinks,linkcolor=,urlcolor=links}'
title: Du dev à la prod
subtitle: "Les patterns de déploiement"
title: Du dev' à la prod'...
subtitle: "Les méthodes de déploiement"
author: Rémi Cailletaud
date: 19 mars 2021
institute: IMT Atlantique
......@@ -14,11 +14,10 @@ institute: IMT Atlantique
# \faBullseye Objectifs
* Réduire les frictions entre phase de développement et de mise en production
* Éviter les interruptions de service lors des mise à jour
* Éviter les interruptions de service lors des mises à jour
* Détecter les erreurs au plus tôt
* *Utiliser* les utilisateurs pour les tests
* Tester de nouvelles fonctionnalités en conditions réelles
* Se servir des utilisateurs finaux pour les tests
# \faEarlybirds Release early, release often
......@@ -26,7 +25,6 @@ institute: IMT Atlantique
* Permet aux developpeurs, testeurs, utilisateurs de donner un retour très tôt et en continu
* Des itérations courtes... des méthodes agiles !
# \faHardHat La béta pérpétuelle
> *« Users must be treated as co-developers, in a reflection of open source development practices (even if the software in question is unlikely to be released under an open source license.). The open source dictum, "release early and release often" in fact has morphed into an even more radical position, "the perpetual beta," in which the product is developed in the open, with new features slipstreamed in on a monthly, weekly, or even daily basis. [^1] »*
......@@ -59,11 +57,11 @@ Table: The Phoenix Project: A Novel About IT (2013)
Amazon en 2015 : +50 millions de déploiements annuels !
# Intégration/Livraison/deploiement continus
# \faInfinity Intégration/Livraison/deploiement continus
![Devops cycle](Devops-toolchain.svg)o
# Déploiement continu: le processus
# \faInfinity Déploiement continu: le processus
## Intégration
* Compilation
......@@ -76,7 +74,7 @@ Amazon en 2015 : +50 millions de déploiements annuels !
## Déploiement
* Déploiement en production
* Mesures, mesures, mesures
* Surveillance, mesures !
# \faBullseye Déploiement continu: objectifs
......@@ -87,47 +85,91 @@ Amazon en 2015 : +50 millions de déploiements annuels !
![Time To Repair](./ttr.png)\
# Zero Downtinme Deployment: Blue/green
# \faShippingFast Zero Downtinme Deployment: Blue/green
* Déployer fréquemment sans affecter la disponibilité
* Deux chaîne applicative, une seule version de l'application active à un instant *t*
![Blue Green Deployment](./blue-green.png){ width=60% }
# Zero Downtinme Deployment: Canary
# \faShippingFast Zero Downtinme Deployment: Canary
* Tester les changements sur une population restreinte
* Deux chaîne applicative, une partie du trafic est dirigé vers la version *n+1*
![Canary Release](./canary.png){ width=60% }
# Zero Downtime Deployment: mise en oeuvre
# \faShippingFast Zero Downtime Deployment: mise en oeuvre
# A/B testing, features flipping
![Blue Green: Mise en oeuvre](./blue-green-moe.png)
https://www.crazyegg.com/case-studies
https://blog.octo.com/test-ab/
# \faShippingFast Zero Downtime Deployment: bonnes pratiques
https://blog.octo.com/feature-flipping/
* Gestion des sessions utilisateurs
* Affinité de session (sticky session)
* Sessions partagées, en base ou via un système de cache (Memcached)
* Modification du schéma de BDD
* Côté base
* Expansion: phase transitoire, cohabitation des deux schémas
* Contraction: consolidation du schéma transitoire pour obtenir le schéma cible
* Rollback: retour au schéma initial sans perte de données
* Côté code
* Déploiement d'un code gérant les deux version du schéma
* Synchronisation et consistance des données !
# les solutions
# \faTablets A/B testing
gitlab github jenkins...
* Experimentation d'un changement, d'une fonctionnalité
* Tests des variantes par sous-population
* Indicateurs et outils de mesures
gitops : argocd flux...
# \faTablets A/B testing: étude de cas
# Démo
![Wall Monkeys original](./wallmonkeys-1.jpg)
# \faTablets A/B testing: étude de cas
# \faCreativeCommons\ \faCreativeCommonsBy\ \faCreativeCommonsSa
![Wall Monkeys heatMap](./wallmonkeys-2.jpg)
# \faTablets A/B testing: étude de cas
![Wall Monkeys première variation +27%](./wallmonkeys-3.jpg)
# \faTablets A/B testing: étude de cas
![Wall Monkeys seconde variation +550%](./wallmonkeys-4.jpg)
# \faToggleOn Feature Flipping
* Activation et désactivation de fonctionnalités sans re-livraison de code
* Préparation et tests de nouvelles fonctionnalités
* Débat *features branching*/*features flipping*
* *Features branching*: utilisation d'une branche (git), risque de *Big Bang merges*
* *Features flipping*: déploiement de code non testé en production...
# \faShapes Les solutions
![Les outils](./DevOps_Ecosystem_v2.jpg)
# \faBookReader Démo
* Vapormap Helm Chart
* JMMC ObsPortal
* ArgoCD
# \faCreativeCommons\ \faCreativeCommonsBy\ \faCreativeCommonsSa
\huge
Questions !
\
Questions, discussion !
\small
Made with \faHeart\ and [Pandoc](https://pandoc.org),
* The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win, Gene Kim, Kevin Behr, George Spartford.
* wikipedia.com
* blog.octo.com
* crazyegg.com/case-studies
* harness.io/blog
Made with [Pandoc](https://pandoc.org),
[Metropolis Beamer Theme](https://github.com/matze/mtheme)
and [FontAwesome](https://fontawesome.com/)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment