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éploiement continu : on commence comment?
Search
Olivier Lafleur
May 10, 2019
Programming
0
130
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
130
L'informatique : un catalyseur pour la science!
olafleur
0
34
Agile Tour Québec 2019 - DDD et programmation fonctionnelle : des alliés naturels
olafleur
0
58
Agile Tour Sherbrooke 2018 - DDD et programmation fonctionnelle : des alliés naturels
olafleur
0
55
Other Decks in Programming
See All in Programming
Polars入門
daikikatsuragawa
1
170
雑に思考を整理する技術と効能
konifar
63
30k
Apache Hive 4 on Treasure Data
ryukobayashi
1
420
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
9
4.2k
敵対的ポイフル
futabato
0
130
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
1
510
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
910
Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50
utgwkk
6
1.8k
Next.js App Router
quramy
12
1.8k
ServerAction で Progressive Enhancement はどこまで頑張れるか? / progressive-enhancement-with-server-action
takefumiyoshii
6
420
Documentation for users with AsciiDoc and Antora
ahus1
0
370
Ruby Pattern Matching
bkuhlmann
0
930
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
79
43k
Building a Modern Day E-commerce SEO Strategy
aleyda
21
6.4k
Atom: Resistance is Futile
akmur
260
25k
Building Your Own Lightsaber
phodgson
100
5.7k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
1.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
356
18k
Practical Orchestrator
shlominoach
183
9.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
21
1.4k
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!