SlideShare a Scribd company logo
1 of 36
Download to read offline
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

More Related Content

What's hot

OpenText MBPM Q&A Webinar
OpenText MBPM Q&A WebinarOpenText MBPM Q&A Webinar
OpenText MBPM Q&A Webinar
convedo Group
 

What's hot (20)

Agile Systems Admin
Agile Systems AdminAgile Systems Admin
Agile Systems Admin
 
Git flow
Git flowGit flow
Git flow
 
Agile coding dojo session #3 (2014 09-20)
Agile coding dojo session #3 (2014 09-20)Agile coding dojo session #3 (2014 09-20)
Agile coding dojo session #3 (2014 09-20)
 
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
 
Using Git with WordPress - Presented by Nigel Rodgers.
Using Git with WordPress - Presented by Nigel Rodgers.Using Git with WordPress - Presented by Nigel Rodgers.
Using Git with WordPress - Presented by Nigel Rodgers.
 
Why golang
Why golangWhy golang
Why golang
 
ADDO 2019: Looking back at over 10 years of Devops
ADDO 2019:    Looking back at over 10 years of DevopsADDO 2019:    Looking back at over 10 years of Devops
ADDO 2019: Looking back at over 10 years of Devops
 
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
 
45 Tools to Boost Your Front-End
45 Tools to Boost Your Front-End45 Tools to Boost Your Front-End
45 Tools to Boost Your Front-End
 
Nuxeo World Session: GWT Integration
Nuxeo World Session: GWT IntegrationNuxeo World Session: GWT Integration
Nuxeo World Session: GWT Integration
 
OpenText MBPM Q&A Webinar
OpenText MBPM Q&A WebinarOpenText MBPM Q&A Webinar
OpenText MBPM Q&A Webinar
 
Asynchronous programming with Functional Java and comparison with Scala
Asynchronous programming with Functional Java and comparison with ScalaAsynchronous programming with Functional Java and comparison with Scala
Asynchronous programming with Functional Java and comparison with Scala
 
It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020
 
Es fácil contribuir al open source - Bolivia JUG 2020
Es fácil contribuir al open source - Bolivia JUG 2020Es fácil contribuir al open source - Bolivia JUG 2020
Es fácil contribuir al open source - Bolivia JUG 2020
 
Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020
 
Introduction to react native @ TIC NUST
Introduction to react native @ TIC NUSTIntroduction to react native @ TIC NUST
Introduction to react native @ TIC NUST
 
Nimble - iOS dependency management
Nimble - iOS dependency managementNimble - iOS dependency management
Nimble - iOS dependency management
 
ChatBots for self-service DevOps
ChatBots for self-service DevOpsChatBots for self-service DevOps
ChatBots for self-service DevOps
 
Google Web Toolkit (GWT)
Google Web Toolkit (GWT)Google Web Toolkit (GWT)
Google Web Toolkit (GWT)
 
Android Made Simple
Android Made SimpleAndroid Made Simple
Android Made Simple
 

Similar to Continuous delivery journey - Montgomery county JUG

QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
Szczepan Faber
 
Counterclockwise past present future
Counterclockwise  past present futureCounterclockwise  past present future
Counterclockwise past present future
lolopetit
 
CodeFest 2014. Vedran Mikulic — Booking Fast Development
CodeFest 2014. Vedran Mikulic — Booking Fast DevelopmentCodeFest 2014. Vedran Mikulic — Booking Fast Development
CodeFest 2014. Vedran Mikulic — Booking Fast Development
CodeFest
 

Similar to Continuous delivery journey - Montgomery county JUG (20)

Continuous delivery@LesFurets - DC Continuous delivery meetup
Continuous delivery@LesFurets - DC Continuous delivery meetupContinuous delivery@LesFurets - DC Continuous delivery meetup
Continuous delivery@LesFurets - DC Continuous delivery meetup
 
CI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and MockitoCI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and Mockito
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
 
Continuous Delivery at Snyk
Continuous Delivery at SnykContinuous Delivery at Snyk
Continuous Delivery at Snyk
 
Monolith vs Microservices with Golang at practice - Ivan Kutuzov
Monolith vs Microservices with Golang at practice  -  Ivan Kutuzov Monolith vs Microservices with Golang at practice  -  Ivan Kutuzov
Monolith vs Microservices with Golang at practice - Ivan Kutuzov
 
Counterclockwise past present future
Counterclockwise  past present futureCounterclockwise  past present future
Counterclockwise past present future
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
Continuous Infrastructure First
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure First
 
CodeFest 2014. Vedran Mikulic — Booking Fast Development
CodeFest 2014. Vedran Mikulic — Booking Fast DevelopmentCodeFest 2014. Vedran Mikulic — Booking Fast Development
CodeFest 2014. Vedran Mikulic — Booking Fast Development
 
Making sense of the front-end, for PHP developers
Making sense of the front-end, for PHP developersMaking sense of the front-end, for PHP developers
Making sense of the front-end, for PHP developers
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Microservices Development Process at Predix.io
Microservices Development Process at Predix.ioMicroservices Development Process at Predix.io
Microservices Development Process at Predix.io
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
3x3 Speeding Up Mobile Releases
3x3 Speeding Up Mobile Releases3x3 Speeding Up Mobile Releases
3x3 Speeding Up Mobile Releases
 
3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Continuous delivery journey - Montgomery county JUG