Date post: | 18-Jul-2015 |
Category: |
Internet |
Upload: | beastiefurets |
View: | 503 times |
Download: | 1 times |
@ArnaudPflieger#ContinuousMerge
Le Continuous Merge Chez LesFurets.com
@ArnaudPflieger @BeastieFurets github.com/lesfurets
@ArnaudPflieger#ContinuousMerge
LesFurets.com1er site indépendant de comparaison d’assurance
2 500 000 devis/an
@ArnaudPflieger#ContinuousMerge
Continuous delivery chez LesFurets.com
1 MEP / jour
Feature branching : •3-10 branches par MEP •40-70 branches en cours
@ArnaudPflieger#ContinuousMerge
Feature branching ?
Feature branching ≠ Trunk Based Delivery
•Pourquoi ?
•Comment ?
@YourTwitterHandle@YourTwitterHandle@ArnaudPflieger#ContinuousMerge
Etat de l’art du Continuous Delivery
Le Trunk Based D… (TBD)
@ArnaudPflieger#ContinuousMerge
Le Trunk Based Dwhatever
Commit -> Build -> Prod
• @axelfontaine • Continuous Delivery by Jez Humble • http://en.wikipedia.org/wiki/Continuous_delivery
@ArnaudPflieger#ContinuousMerge
TBD - un plan galère
•Tests automatisés pas suffisants •Déploiements pas complètement automatisés •Feature toggles pénibles •Pas de chemin de migration
Investissement lourd et difficile
@YourTwitterHandle@YourTwitterHandle@ArnaudPflieger#ContinuousMerge
Feature Branching
@ArnaudPflieger#ContinuousMerge
master
features/f1
features/f2
@ArnaudPflieger#ContinuousMerge
Ok banco pour les feature branches !
@ArnaudPflieger#ContinuousMerge
@ArnaudPflieger#ContinuousMerge
La perte de l’IC
•Maven (compile + tests) • Environnement de test (dog fooding) • Selenium • Intégration du code / resolution des conflits
@ArnaudPflieger#ContinuousMerge
La perte de l’IC
•Maven (compile + tests) • Environnement de test (dog fooding) • Selenium • Intégration du code / resolution des conflits
:(
@YourTwitterHandle@YourTwitterHandle@ArnaudPflieger#ContinuousMerge
Le Continuous Merge
Merge automatique !
@ArnaudPflieger#ContinuousMerge
master
features/f1
features/f1 features/f2
octopusoctopus
@ArnaudPflieger#ContinuousMerge
Construire l’octopus
n’existe pas !git merge features/*
git octopusgithub.com/lesfurets/git-octopus
@YourTwitterHandle@YourTwitterHandle@ArnaudPflieger#ContinuousMerge
Demo
@ArnaudPflieger#ContinuousMerge
Les conflitsAu cas par cas
• Eviter le conflit
• Sortir de l’IC
• Mettre l’un devant l’autre
• Feature toggle
@YourTwitterHandle@YourTwitterHandle@ArnaudPflieger#ContinuousMerge
Workflow jusqu’en prod
@ArnaudPflieger#ContinuousMerge
ticket1
ticket2
ticket3
ticket4
ticket5
features releaseslocal
ticket3master
git branch ticket3 releases/master git push features git push releases
ticket3
ticket1
MEP
master
octopus-features octopus-releases
Le temps de commiter 1 jour à 1 mois 1 - 2 jours
@ArnaudPflieger#ContinuousMerge
Les bons ingrédients
•Proximité des équipes
•Développements indépendants
•Bonne maitrise de Git
•Code sain
•MEPs fréquentes
@YourTwitterHandle@YourTwitterHandle@ArnaudPflieger#ContinuousMerge
Peut-on mieux faire ?
@ArnaudPflieger#ContinuousMerge
La suite
•Tendre vers 1 Mep / branche
•Tuer les problèmes de conflits
@ArnaudPflieger#ContinuousMerge
A toi, amis du SCRUMTu releases ton soft au moins une fois par mois ?
Le continuous delivery n’est pas loin !
•Un peu plus de devops•Git•Process de validation incrémentale
@ArnaudPflieger#ContinuousMerge
Le mot de la fin
Le TBD n’est pas une fatalité pour faire du Continuous delivery
@ArnaudPflieger#ContinuousMerge
github.com/lesfurets/git-octopus
@BeastieFurets