livrer chaque jour ce qui est prêt chez lesfurets.com v3.1 - ippon 201606
TRANSCRIPT
![Page 1: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/1.jpg)
Livrer chaque jour ce qui est prêtContinuous Delivery & Continuous Merge
![Page 3: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/3.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
1er site indépendant de comparaison d’assurance :
• Lancé en 2012
• 2,5M de devis par an
• 31% du marché de la comparaison de contrats auto
![Page 4: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/4.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Application
• 6 formulaires complexes
• 50+ partenaires interrogés en temps réel
• Java (tomcat) & GWT (client)
• 400k LOC / 40k tests unitaires / 200 tests Selenium
• Livraison Quotidienne
• 23 Developers
• 6 Tech Leads, 1 Architecte
• 2 Ops
• 1 Manager
@beatiefurets
github.com/lesfurets
![Page 5: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/5.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Continuous Delivery ?
Livrés en 4 mois par container ! Record à battre :-)
![Page 6: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/6.jpg)
Etre développeurCycle de maturation
![Page 7: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/7.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
1995-1998 Etudiant (ENSIMAG)
▪Code jamais utilisé en production▪Livraison: A la rache▪Code ▪écrit: 1000 lignes/mois▪net: +1000 lignes/mois▪Tests: 3h/mois▪3 lignes / secondes
PRIME A LA FONCTIONALITE
![Page 8: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/8.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
1998-2006 Codeur (Edition logicielle)
▪Livraison: Mensuelle-Annuelle (recette)▪ Code▪ écris 600 lignes/mois▪ ajouté (net): +500 lignes/mois▪utilisé 6-12 mois après finition▪ Tests▪ 40h (1/4 du temps)▪ 4min / ligne
PRIME A LA QUALITE
![Page 9: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/9.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
2006-2011 Développement Agile
▪ Livraison: 15-30 jours (démo global)▪ Code:▪ Ecris: 400 lignes/mois▪ Ajouté (net): +200 lignes/mois▪ Utilisé 1-2 semaines après finition▪ Tests:▪ 40h (5min / ligne)
PRIME A LA LIVRAISON
![Page 10: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/10.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
2011 Lean & Continuous Delivery
▪ Livraison: J+1 (démo unitaire)▪Code▪Ecrit 400 lignes/mois ▪Ajouté (net) +0 lignes/mois (refactoring)▪ Utilisé 1-2 jours après finition▪Test▪40h (5min / ligne)
PRIME A LA VALEUR PRODUITE
![Page 11: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/11.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
2016 Manager
D’une équipe de 25 développeurs
• 12.500 lignes par mois (risque en maintenance)
• Mes Objectifs:
• Rester sous les 1% d’inflation (du code)
• Livrer quand c’est prêt
• Ne travailler que sur le plus utile (priorisation)
• Garder des développeurs impliqués
![Page 12: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/12.jpg)
Continuous DeliveryLa Théorie
![Page 13: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/13.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Manifeste agile
Principe #1
« Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée. »
http://agilemanifesto.org/iso/fr/principles.html
![Page 14: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/14.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Livrer tôt, livrer souvent
http://paulhammant.com/2013/03/13/facebook-tbd-take-2/
![Page 15: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/15.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Continuous Delivery
1. Build rapide
2. Build robuste
3. Déploiements simples et automatisés
4. Monitoring de production et alertes
5. Analyse des causes racines
![Page 16: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/16.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Git / Git Flow / Github Flow
Git: Un puissant modèle de branches
http://nvie.com/posts/a-successful-git-branching-model/
Master
Branch
Pull Request
Github
![Page 17: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/17.jpg)
Livrer plus souventRetour d’expérience
![Page 18: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/18.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Organisation en SCRUM classique :
• Sprints d’un mois, Planification au mois, Recette 1 semaine
• Build : 15 minutes
• 200 Seleniums : 1 heure
• Blocages : Build + Selenium + Recette
2012 : Livraison Mensuelle
![Page 19: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/19.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
2012 : Livraison Mensuelle
Planifier / estimer / coder / tester / livrer de mensuellement
Sprints
12 releases en 2012
![Page 20: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/20.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
• Objectif 2013: livrer plus souvent (hebdo)
• Améliorations:
• Identification de fonctionnalité livrable en avance (cherry pick)
• Build : 3 minutes (contre 15 minutes)
• Blocages:
• Selenium + Recette
• Organisation du code (trunk based dev)
• Cherry Pick sur branche de release
2013 : Livraison Hebdo
![Page 21: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/21.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
2013 : Livraison Hebdo
Planifier / estimer / coder / tester livrer chaque semaine
Sprints 1 mois + Livraison hebdo
![Page 22: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/22.jpg)
@beastiefurets@dbaeli
branch (prod)
trunk trunk
3 - 4 semaines 1 - 4 jours5 jours
Release
Code Freeze
branch
![Page 23: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/23.jpg)
@beastiefurets@dbaeli
Storie 1
branch (prod)
trunk trunk
Release
Code Freeze
branch
3 - 4 semaines 1 - 4 jours5 jours
![Page 24: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/24.jpg)
@beastiefurets@dbaeli
Storie 1
branch (prod)
trunk trunk
Storie 2
Release
Code Freeze
branch
3 - 4 semaines 1 - 4 jours5 jours
![Page 25: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/25.jpg)
@beastiefurets@dbaeli
Storie 1
branch (prod)
trunk trunk
Storie 2
Release
Code Freeze
branch
3 - 4 semaines 1 - 4 jours5 jours
Merge à risque
![Page 26: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/26.jpg)
@beastiefurets@dbaeli
Storie 1
branch (prod)
trunk trunk
Storie 2
Release
Code Freeze
branch
3 - 4 semaines 1 - 4 jours5 jours
![Page 27: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/27.jpg)
@beastiefurets@dbaeli
Storie 1
branch (prod)
trunk trunk
Storie 2
Release
Code Freeze
branch
3 - 4 semaines 1 - 4 jours5 jours
1 semaine
Storie 3
![Page 28: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/28.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
• Objectif 2014: Livraison journalière
• Améliorations:
• Préparation branche release auto, pas de dev non terminé en release
• Selenium : 10 minutes + Zeno (regressions graphiques)
• Blocages:
• Temps de release (2-3h par 1 dev)
• Risque par release (15jh de travail par release)
2014: Livraison Quotidienne
![Page 29: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/29.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
2014: Livraison Quotidienne
Livrer ce qui est prêt demain … tous les jours !
Marathon
208 releases en 2014 (déjà 150 en 2015)
![Page 30: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/30.jpg)
@beastiefurets@dbaeli
ticket3
features releaseslocal
ticket3
master
ticket3
master
Le temps de commiter 1 jour à 1 mois 1 - 2 jours
pull requests
0 - 2 jours
release
![Page 31: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/31.jpg)
@beastiefurets@dbaeli
ticket1
ticket3
ticket4
features releaseslocal
ticket3
master
ticket3
ticket1
master
Le temps de commiter 1 jour à 1 mois 1 - 2 jours
pull requests
0 - 2 jours
release
![Page 32: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/32.jpg)
@beastiefurets@dbaeli
octopus-features
ticket1
ticket3
ticket4
features releaseslocal
ticket3
master
ticket3
ticket1
master
Le temps de commiter 1 jour à 1 mois 1 - 2 jours
pull requests
0 - 2 jours
release
![Page 33: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/33.jpg)
@beastiefurets@dbaeli
ticket1
ticket2
ticket3
ticket4
ticket5
features releaseslocal
ticket3
master
ticket3
ticket1
master
octopus-features
octopus-releases
Le temps de commiter 1 jour à 1 mois 1 - 2 jours
pull requests
0 - 2 jours
release
![Page 34: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/34.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Time To Market
• 2012 :
➡ Début dev à la MEP : Temps dev + 2 semaines
➡ Non satisfaisant pour le business
• 2014 :
➡ Début dev à la MEP : Temps dev + 2 jours
➡ Quand c’est prêt
![Page 35: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/35.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Vue du métier : 2012
• Mindset “Itération” :
➡ Focalisé sur la date de livraison de l’ensemble
➡ Tendance naturelle à charger
• Mauvaises Surprises :
➡ Pas dans la release = Au min 1 itération d’attente
➡ Demande de livraisons séparées (pour voir l’impact !)
➡ MVP devient naturel pour décider des gros projets
![Page 36: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/36.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Vue du métier : 2014+
• Mindset “Quand c’est prêt” :
➡ Petit = vite
➡ Tendance naturelle à alléger
• Bonnes Surprises :
➡ Demande de livraisons séparées (pour voir l’impact !)
➡ MVP devient naturel pour décider des gros projets
➡ Pas dans la release = au min +1 jour
![Page 37: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/37.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Objectif 2016 - Par feature
Livrer ce qui est prêt aujourd’hui … tous les jours !
Marathon
250+ releases en 2015 (déjà 150+ en 2016)
![Page 38: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/38.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
0"
20"
40"
60"
80"
100"
120"
140"
160"
10" 20" 30" 40" 50" 60" 70" 80" 90" 100" 250" 500" 1000" 5000" 5000"
Histogramme"du"nombre"de"modifica<on"des"releases"
Modifications par Releases
Par Release
• 5 - 6 Tickets
• >150 lignes
• Avec des exceptions
Objectif:
• Eviter les commits de >100 lignes
![Page 39: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/39.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Livraison Continue – Jours / Heures
![Page 40: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/40.jpg)
Retour d’expérienceMise en oeuvre
![Page 41: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/41.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Améliorer par la fin
5. Monitoring & Exploitation
4. Mise En Production
3. Release Création & Validation
2. Développement
1. Conception
![Page 42: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/42.jpg)
1. Conception
![Page 43: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/43.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Flux de fonctionnalités
• #1 Fonctionnalités conçues pour être indépendantes
• Livrable dès que c’est prêt
• Découplage des fonctionnalités
• Si dépendant alors attendre ou fusionner
• #2 Fast feedback
• Petites taches vites en production
• Retour chiffré rapide pour prise de décision : stop / cont.
![Page 44: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/44.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
OrganisationPr
iorit
isat
ion
Resource Allocation
Team Team Team
Strategic program initiatives
5% RUN
35% BAU / QUAL
60% BUILD
![Page 45: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/45.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Flow from Portfolio
![Page 46: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/46.jpg)
2. Développement
![Page 47: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/47.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Environnement Dev
• Chaque fonctionnalité sur une branche feature dédiée
• Code Production (master) + fonctionnalité uniquement
• Isolation sur le poste de chaque développeur (+ alias DNS)
• Environnements quasi iso Production
• Capacité de se focaliser sur ce développement
![Page 48: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/48.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Intégration Continue
Feature Branching + Intégration Continue
![Page 49: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/49.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Intégration Continue
L’intégration continue effectue à chaque commit :
• Compilation
• Tests automatisés
• Merge des features branches (Octopus)
➡ On fait du continuous merge avec l’Octopus
![Page 50: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/50.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Continuous Merge Octopus
• Outil Open Source de merge en continu
• Développé en interne chez LesFurets.com :
➡ https://github.com/lesfurets/git-octopus
• Il existe une conférence dédiée par Arnaud Pflieger
![Page 51: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/51.jpg)
@beastiefurets@dbaeli
ticket1
ticket2
ticket3
ticket4
ticket5
features releaseslocal
ticket3
master
ticket3
ticket1
master
octopus-features
octopus-releases
Le temps de commiter 1 jour à 1 mois 1 - 2 jours
pull requests
0 - 2 jours
release
![Page 52: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/52.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Environnement Staging
• Quasi iso environnement de Production
• Regroupement de toutes les features en cours (Octopus)
• Effets de bord des features
• Seleniums sur le regroupement
• Suivi des logs plus facile
![Page 53: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/53.jpg)
3. Release Création & Validation
![Page 54: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/54.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Création Release Branche
Création entièrement automatisée :
• Regroupement des features prêtes (Octopus)
• Déploiement sur Pre-Prod (quasi iso Prod)
• Validation sur Pre-Prod
![Page 55: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/55.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Validation Release Branche
Validation à l’aide d’outils manuels et automatiques :
• Tests unites et d’intégration
• Code review
• Validation fonctionnelle (sur env Stage)
• Grid Selenium
• Non régression UI (Zeno)
![Page 56: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/56.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Grid Selenium on LXC
• 200 Tests Selenium : 6 heures
• Grid Selenium classique : 1heure
• Grid Selenium RamFS : 10 minutes
• 1 Machine OVH, 128 Go RAM, 300 euros/mois
• Détails sur https://github.com/lesfurets/selenium-lxc
![Page 57: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/57.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Zeno Pixel
• Outil Open Source de comparaison d’images (perceptual diff)
• Développé en interne chez LesFurets.com :
➡ https://github.com/lesfurets/zeno-pixel
• Il existe une conférence dédiée par Matthieu Fourtina
![Page 58: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/58.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Zeno Pixel
• Screenshots automatiques des pages du site
• Cross-environment (Stage, Pre-Prod, Prod)
• Cross-device (Desktop, Mobile, Tablet)
• Comparaisons des versions de chaque page
• Calcul des différences graphiques
![Page 59: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/59.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Zeno Pixel
![Page 60: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/60.jpg)
4. Mise En Production
![Page 61: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/61.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Mise En Production
• Réalisée de A à Z par un seul développeur
• Automatisée via Jenkins :
➡ Création de la Release Branche
➡ Déploiement de Release Branche
➡ Merge de la Release Branche dans le master
➡ Création et diffusion de la Release Note
![Page 62: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/62.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Infrastructure As Code
Toutes les modifications de configuration sont historiséesLes bugs de configuration sont des bugs de code
![Page 63: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/63.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Déploiement
Tout le déploiement est fait avec 0 downtime en utilisant un système Blue / Green
![Page 64: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/64.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Git Flow Résumé
![Page 65: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/65.jpg)
5. Monitoring & Exploitation
![Page 66: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/66.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Monitoring technique
Sondes Datadog - Indicateurs techniques
![Page 67: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/67.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Monitoring fonctionnel
Sondes Zabbix - Indicateurs fonctionnels
![Page 68: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/68.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Alertes & Logs
Chaque logs/traces d'erreurs arrivent par mail depuis de chaque environnement :
• 200-1000 erreurs / jour, dont 20% depuis le JS
• 1h synthétisée = 1 mail
• 24h synthétisées = 1 mail
![Page 69: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/69.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Post Mortem
• Work in progress
• Post Mortem sur chaque incident de Production
• Analyse de la cause profonde
• Suivi de résolution de la cause
• Actuellement 5-10 incidents mineurs par mois, ~1 major
![Page 70: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/70.jpg)
Théorie v2Retour d’expérience
![Page 71: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/71.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Kanban Games
•GetKanban !Découverte des principes Kanban
Contexte : équipe de développement
• KanbanZine !Découverte des principes KanbanContexte : fabrication d’un magazine
![Page 72: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/72.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
LIVRES
• KANBAN by D.Anderson
• PRODUCT DEVELOPMENT FLOW by Don Reinertsen
• LEAN ENTERPRISE by Humble,Molesky,O'Reilly
• KANBAN POUR L’IT by L.Morisseau
• PREMIER KANBAN by J.Boeg
• THIS IS LEAN by N.Modig, P.Ahlstrom
• SLACK by Tom DeMarco
• KANBAN FROM THE INSIDE by M.Burrows
![Page 73: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/73.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Kanban : Evolutionary Change
•Visualisation du travail
•Limiter le travail en cours (WIP)
•Règles explicites
•Amélioration continue
•Leadership
![Page 74: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/74.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Product Development Flow
•Travailler en flux
•Gérer les files d’attentes
•Regarder le lead time plutôt que le coût de développement
•Réduire le coût de livraison
![Page 75: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/75.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
The Phoenix project
•How to avoid experts as SPOF
•DevOps as Business enabler
•Small and motivated teams
•Resilience !
![Page 76: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/76.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
How Google Test Software
•Quality Engineering vs Quality Assurance
•Création d’outils de test pour les devs
•Les devs font la QA eux même
![Page 77: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/77.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
How to measure anything
•D’abord identifier la décision à prendre
•Identifier l’information manquante
•Mesurer uniquement cette information
•Beaucoup plus simple qu’on pense
![Page 78: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/78.jpg)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Lean Enterprise
•Orient• Alternative to Command and Control
• Enterprise Portfolio
•Explore Uncertainty• Discover opportunities
•Exploit• Continuous Delivery, Cost of Delay
•Transform• Embrace Lean Thinking, Rethinking the IT Mindset
![Page 79: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/79.jpg)
79
LesFurets.com LeanKanban.fr29, 30 Novembre 2016 www.leankanban.fr
![Page 80: Livrer chaque jour ce qui est prêt chez LesFurets.com v3.1 - Ippon 201606](https://reader031.vdocuments.net/reader031/viewer/2022030300/5881c0b21a28abdd268b4f5d/html5/thumbnails/80.jpg)
@dbaeli@beastiefurets
MERCI !