27
@ArnaudPflieger #ContinuousMerge Le Continuous Merge Chez LesFurets.com @ArnaudPflieger @BeastieFurets github.com/lesfurets

Le Continuous Merge chez LesFurets.com - Devoxx 2015

Embed Size (px)

Citation preview

Page 1: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

Le Continuous Merge Chez LesFurets.com

@ArnaudPflieger @BeastieFurets github.com/lesfurets

Page 2: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

LesFurets.com1er site indépendant de comparaison d’assurance

2 500 000 devis/an

Page 3: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

Continuous delivery chez LesFurets.com

1 MEP / jour

Feature branching : •3-10 branches par MEP •40-70 branches en cours

Page 4: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

Feature branching ?

Feature branching ≠ Trunk Based Delivery

•Pourquoi ?

•Comment ?

Page 5: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@YourTwitterHandle@YourTwitterHandle@ArnaudPflieger#ContinuousMerge

Etat de l’art du Continuous Delivery

Le Trunk Based D… (TBD)

Page 6: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

Le Trunk Based Dwhatever

Commit -> Build -> Prod

• @axelfontaine • Continuous Delivery by Jez Humble • http://en.wikipedia.org/wiki/Continuous_delivery

Page 7: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@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

Page 8: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@YourTwitterHandle@YourTwitterHandle@ArnaudPflieger#ContinuousMerge

Feature Branching

Page 9: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

master

features/f1

features/f2

Page 10: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

Ok banco pour les feature branches !

Page 11: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

Page 12: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

La perte de l’IC

•Maven (compile + tests) • Environnement de test (dog fooding) • Selenium • Intégration du code / resolution des conflits

Page 13: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

La perte de l’IC

•Maven (compile + tests) • Environnement de test (dog fooding) • Selenium • Intégration du code / resolution des conflits

Page 14: Le Continuous Merge chez LesFurets.com - Devoxx 2015

:(

Page 15: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@YourTwitterHandle@YourTwitterHandle@ArnaudPflieger#ContinuousMerge

Le Continuous Merge

Merge automatique !

Page 16: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

master

features/f1

features/f1 features/f2

octopusoctopus

Page 17: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

Construire l’octopus

n’existe pas !git merge features/*

git octopusgithub.com/lesfurets/git-octopus

Page 18: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@YourTwitterHandle@YourTwitterHandle@ArnaudPflieger#ContinuousMerge

Demo

Page 19: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

Les conflitsAu cas par cas

• Eviter le conflit

• Sortir de l’IC

• Mettre l’un devant l’autre

• Feature toggle

Page 20: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@YourTwitterHandle@YourTwitterHandle@ArnaudPflieger#ContinuousMerge

Workflow jusqu’en prod

Page 21: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@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

Page 22: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

Les bons ingrédients

•Proximité des équipes

•Développements indépendants

•Bonne maitrise de Git

•Code sain

•MEPs fréquentes

Page 23: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@YourTwitterHandle@YourTwitterHandle@ArnaudPflieger#ContinuousMerge

Peut-on mieux faire ?

Page 24: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

La suite

•Tendre vers 1 Mep / branche

•Tuer les problèmes de conflits

Page 25: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@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

Page 26: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

Le mot de la fin

Le TBD n’est pas une fatalité pour faire du Continuous delivery

Page 27: Le Continuous Merge chez LesFurets.com - Devoxx 2015

@ArnaudPflieger#ContinuousMerge

github.com/lesfurets/git-octopus

@BeastieFurets