Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Agile Tour Sherbrooke 2019 - DevOps et déploiem...
Search
Olivier Lafleur
May 10, 2019
Programming
0
160
Agile Tour Sherbrooke 2019 - DevOps et déploiement continu : on commence comment?
Présentation faite le 10 mai 2019 à l'Agile Tour 2019
Olivier Lafleur
May 10, 2019
Tweet
Share
More Decks by Olivier Lafleur
See All by Olivier Lafleur
Mob programming : “seul, on va plus vite, ensemble, on va plus loin!” - Agile Tour Québec 2020
olafleur
0
160
L'informatique : un catalyseur pour la science!
olafleur
0
44
Agile Tour Québec 2019 - DDD et programmation fonctionnelle : des alliés naturels
olafleur
0
64
Agile Tour Sherbrooke 2018 - DDD et programmation fonctionnelle : des alliés naturels
olafleur
0
66
Other Decks in Programming
See All in Programming
r2-image-worker
yusukebe
1
170
アーキテクチャと考える迷子にならない開発者テスト
irof
9
3.1k
Swift Concurrency 年表クイズ
omochi
3
230
Feature Flags Suck! - KubeCon Atlanta 2025
phodgson
0
140
Register is more than clipboard
satorunooshie
1
480
Private APIの呼び出し方
kishikawakatsumi
3
880
Flutterアプリ運用の現場で役立った監視Tips 5選
ostk0069
1
470
Atomics APIを知る / Understanding Atomics API
ssssota
1
150
AI駆動開発ライフサイクル(AI-DLC)のホワイトペーパーを解説
swxhariu5
0
1.1k
Module Harmony
petamoriken
2
450
All(?) About Point Sets
hole
0
170
MCPサーバー「モディフィウス」で変更容易性の向上をスケールする / modifius
minodriven
8
1.6k
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
A better future with KSS
kneath
239
18k
Building Adaptive Systems
keathley
44
2.8k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Designing for Performance
lara
610
69k
GitHub's CSS Performance
jonrohan
1032
470k
Site-Speed That Sticks
csswizardry
13
970
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Building an army of robots
kneath
306
46k
Thoughts on Productivity
jonyablonski
73
4.9k
Transcript
DevOps et déploiement continu : on commence comment? Agile Tour
Sherbrooke - 10 mai 2019
Olivier Lafleur, M.Sc., PSM Coach agile / technique Mentor dans
le programme de résidence @olilafleur
None
C’est quoi le rapport avec l’agilité?
Notre plus haute priorité est de satisfaire le client en
livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée. - Principes sous-jacents au manifeste
Notre plus haute priorité est de satisfaire le client en
livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée. - Principes sous-jacents au manifeste
Livrez fréquemment un logiciel opérationnel avec des cycles de quelques
semaines à quelques mois et une préférence pour les plus courts. - Principes sous-jacents au manifeste
Livrez fréquemment un logiciel opérationnel avec des cycles de quelques
semaines à quelques mois et une préférence pour les plus courts. - Principes sous-jacents au manifeste
Source
POURQUOI?
Feedback fréquent
None
Un déploiement devrait être un non-événement
None
None
Quelques conséquences de viser le déploiement continu :
Quelques conséquences de viser le déploiement continu : - déploiements
sans downtime
Quelques conséquences de viser le déploiement continu : - déploiements
sans downtime - beaucoup d’automatisation
Quelques conséquences de viser le déploiement continu : - déploiements
sans downtime - beaucoup d’automatisation - bon découplage logiciel
Quelques conséquences de viser le déploiement continu : - déploiements
sans downtime - beaucoup d’automatisation - bon découplage logiciel - moins de silos
Quelques conséquences de viser le déploiement continu : - déploiements
sans downtime - beaucoup d’automatisation - bon découplage logiciel - moins de silos - tests et vérification rapide
COMMENT?
Le moyen le plus efficace de créer l’état futur est
de combler l’écart entre l’état actuel et la conception idéalisée. - Loi d’Ackoff
Quel est notre état idéal?
Par exemple : - tous les devs peuvent déployer en
une commande - le déploiement prend moins de 5 minutes - le rollback est facile (une commande)
Mais nous on peut pas parce que...
None
Explorons des problèmes potentiels et des solutions potentielles
“J’ai rempli un ticket et je dois maintenant attendre après
le tech pour qu’une machine soit disponible et qu’il ait ouvert les bons ports.”
None
DevOps?
Pas un rôle, une philosophie !
None
Passer du tech “gardien” au tech “facilitateur”
Mettre en place une infrastructure à la demande ou utiliser
le cloud
“Infrastructure as Code”
None
FROM ubuntu:18.04 COPY . /app RUN make /app CMD python
/app/app.py EXPOSE 80
“Mes tests prennent des heures à rouler et/ou les QAs
doivent faire les tests manuels”
None
None
Pyramide de tests
PETITS MOYENS LARGES 70% 20% 10%
Supposons une moyenne de 20 ms pour un test unitaire
Combien je peux en rouler en 30 secondes?
Environ 1500
“Ça nous prend plusieurs jours à réintégrer dans master les
nouvelles fonctionnalités”
None
None
Intégration continue
Trunk-based : une seule branche partagée
Feature Toggle
Déployer du code même si inactif !
function uneFonction(){ if(fonctionActivee("nouvel-algo") ){ return superAlgo(); } else{ return ancienAlgo();
} }
Par défaut, on active ou désactive le toggle?
None
Canary release?
Canary release! Source
None
“On travaille dans du vieux code épeurant”
None
Tests de caractérisation
None
Découpage en microservices
ATTENTION : découper en domaines d’affaires!
None
“On ferme le système durant certaines fin de semaines pour
déployer la nouvelle version”
Déploiement bleu-vert Source
ATTENTION : Accent sur des solutions techniques !
None
Méthode scientifique! Agilité : l’art d’expérimenter
Soyez patients! Un goulot d’étranglement à la fois
Nous découvrons comment mieux développer des logiciels par la pratique
et en aidant les autres à le faire. - Manifeste Agile
Quel est le plus gros problème qui vous empêche de
faire du déploiement continu?
Quelles expériences pourriez-vous mettre en place pour vous rapprocher de
l’idéal?
Merci!