From 10 to 500 releases a year,
a Continuous Delivery Journey
MCJUG - 03/16/2016
&
* The ferrets
#ContinuousDeliveryMCJUG
Raphael Brugier @rbrugier
#ContinuousDeliveryMCJUG
● Insurance comparison website
● Launched 2012
● 2.5M quotes/year
#ContinuousDeliveryMCJUG
IT team - Feature teams
Site conversion
Landing Funnel Panel
Data ArchOps
#ContinuousDeliveryMCJUG
Architecture
● Monolithic Architecture
● 1 codebase
● Java (tomcat) & GWT(client)
● 400k LOC
● 40k unit tests
The journey
#ContinuousDeliveryMCJUG
2012
● Scrum
● 3 weeks / sprint
● 15-minute build
● 1h selenium tests
#ContinuousDeliveryMCJUG
2012 - 12 releases
plan / estimate / code / test / fix
#ContinuousDeliveryMCJUG
Since 2014
● Kanban
● 3-minute build
● 15-minute seleniums
● Deliver each feature separately
○ when ready
● One delivery per day
The basics
#ContinuousDeliveryMCJUG
Agile manifesto #1
“Our highest priority is to satisfy the customer
through early and continuous delivery of
valuable software”
www.agilemanifesto.org/principles.html
#ContinuousDeliveryMCJUG
more at: http://paulhammant.com/2013/03/13/facebook-tbd-take-2/
#ContinuousDeliveryMCJUG
● build fast
● reliable build
● automated & simple deployment
● production monitoring and alerts
● root cause analysis
Step by step
#ContinuousDeliveryMCJUG
Start by the end
5. Ops
4. Deployment
3. Validation
2. Development workflow
1. Implementation
#ContinuousDeliveryMCJUG
5. Ops
Functional monitoring
#ContinuousDeliveryMCJUG
5. Ops
Key metrics
#ContinuousDeliveryMCJUG
4. Deployment
● Jenkins + Scripts
○ versionned
● 1 developer every day
○ From A to Z
○ Anyone with a ready feature
● Rollback
#ContinuousDeliveryMCJUG
4. Blue/Green Deployment
#ContinuousDeliveryMCJUG
3. Validation
● QA each feature separately
○ Code reviews
○ Demo
○ “Ready for production” status in Jira
● Seleniums for non regression
○ Selenium grid in a “big” server
● Visual regression tool
#ContinuousDeliveryMCJUG
3. Visual validation - ZENO Pixel
github.com/lesfurets/zeno-pixel
#ContinuousDeliveryMCJUG
2. Development workflow
● Git Flow
nvie.com/posts/a-successful-git-branching-model
#ContinuousDeliveryMCJUG
Let’s do both!
#ContinuousDeliveryMCJUG
Git octopus - continuous merge
github.com/lesfurets/git-octopus
Prod 4.17
#ContinuousDeliveryMCJUG
Git octopus
github.com/lesfurets/git-octopus
Prod 4.17
#ContinuousDeliveryMCJUG
Git octopus
github.com/lesfurets/git-octopus
Prod 4.17
#ContinuousDeliveryMCJUG
Git octopus
github.com/lesfurets/git-octopus
Prod 4.18
#ContinuousDeliveryMCJUG
Git octopus in action!
github.com/lesfurets/git-octopus
#ContinuousDeliveryMCJUG
1. Implementation
● (almost) No feature toggles
● Hardcode anything! (behavior config)
● Requires a good code base
What changed?
#ContinuousDeliveryMCJUG
For the developers
● More responsibilities
○ QA
○ Monitoring
○ Deployment
● Many teams, same codebase
● Less risk
#ContinuousDeliveryMCJUG
For the business
● Manage projects, not teams
● 10 - 15 days
● Faster time to market
Q&A
github.com/lesfurets
@IpponUSA@beastiefurets
github.com/ippontech
image references
big data cover: https://www.manning.com/books/big-data
spark and cassandra logos: apache foundation
java logo: oracle
effeil tower: http://www.uniquecoloringpages.com/wp-content/uploads/2014/03/Coloring-
Pages-Eiffel-Tower-Paris.jpg
USA flag: wikipedia https://upload.wikimedia.
org/wikipedia/commons/thumb/3/3e/USA_Flag_Map.svg/640px-USA_Flag_Map.svg.png
water truck:http://cdn-7.psndealer.com/e2/dealersite/images/wiclark/water-truck-ds.jpg
water truck lego: http://images.moc-pages.
com/user_images/15600/1363559810m_SPLASH.jpg
water tap: http://visianinfo.com/wp-content/uploads/low-flow-water-faucet.jpg
References:
http://fr.slideshare.net/beastiefurets/devoxx-
france-2015-git-octopus

Continuous delivery journey - Montgomery county JUG