SlideShare a Scribd company logo
The Road to Continuous Deployment
THE ROAD TO CONTINUOUS
DEPLOYMENT - A CASE STUDY
MICHIEL ROOK
@michieltcs
The Road to Continuous Deployment
THE SYSTEM - SAN DIEGO
▸ ... or the Big Ball Of Mud
▸ Large legacy monolith
▸ Generates significant income
▸ Slow & complex
▸ Technical debt
@michieltcs
SAN DIEGO
FRONTEND
MYSQL
DB
SAN DIEGO
BACKEND
LOAD BALANCERS / VARNISH
ITBANEN INTERMEDIAIR NATIONALEVACATUREBANK
SAN DIEGO
FRONTEND
SAN DIEGO
FRONTEND
SAN DIEGO
FRONTEND
SAN DIEGO
BACKEND
SAN DIEGO
BACKEND
SAN DIEGO
BACKEND
MEMCACHE FTP
EXT.
SERVICES
SOLR
@michieltcs
THE SYSTEM - SAN DIEGO
▸ Infrequent, manual releases
▸ Fragile tests
▸ Frequent outages & issues
▸ Frustrated team
▸ Low confidence modifying existing code
@michieltcs
GOALS
▸ Reduce issues
▸ Reduce cycle time
▸ Increase productivity
▸ Increase motivation
REFACTOR? REBUILD?
APPROACH
▸ Strangler pattern
▸ API first
▸ Services per domain object
(job, jobseeker, ...)
▸ Migrate individual pages
@michieltcs
ORIGINAL
MONOLITH
PROXY
SERVICE
ORIGINAL
MONOLITH
ORIGINAL
MONOLITH
SERVICE SERVICE
SERVICE
PROXY
DB
DB
DB
DB
DB DB
@michieltcs
APPROACH
▸ Services behind load balancers
▸ Access legacy db’s
▸ Continuous deployment
▸ Docker containers
▸ Frontends are services
@michieltcs
CONTINUOUS EVERYTHING
DEV BUILD / TEST
CONTINUOUS INTEGRATION
@michieltcs
DEV BUILD / TEST ACCEPTANCE PRODUCTION
CONTINUOUS DELIVERY
@michieltcs
DEV BUILD / TEST STAGING PRODUCTION
CONTINUOUS DEPLOYMENT
@michieltcs
WHY CONTINUOUS DEPLOYMENT
▸ Small steps
▸ Early feedback
▸ Reduce cycle time
▸ Reduce risk
▸ Experiments!
@michieltcs
SUCCESSFUL TEAMS HAVE
@michieltcs
ONLY COMMIT TO MASTER
EVERY COMMIT GOES TO
PRODUCTION
PAIR PROGRAMMING
QUALITY GATES
FEATURE TOGGLES, A/B TESTS
@michieltcs
DASHBOARDS
DEVOPS
AUTOMATE REPEATABLE THINGS
CONTINUOUS TESTING
CONTINUOUS TESTING
UNIT TESTS
INTEGRATION TESTS
ACCEPTANCE TESTS
UI TESTS
SMOKE

TESTS
Cost Speed
Exploratory

testing
Monitoring
@michieltcs
PIPELINE AS CODE
node {

stage 'Run tests'

sh "phpunit"

sh "behat"



stage 'Build docker image'

sh "phing build"

sh "docker build -t jobservice:${env.BUILD_NUMBER} ."

sh "docker push jobservice:${env.BUILD_NUMBER}"



stage 'Deploy acceptance'

sh "ansible-playbook -e BUILD=${env.BUILD_NUMBER}

-i acc deploy.yml"



stage 'Deploy production'

sh "ansible-playbook -e BUILD=${env.BUILD_NUMBER}

-i prod deploy.yml"

}
@michieltcs
DEPLOYING
PULL IMAGE
START NEW CONTAINER
WAIT FOR PORT
SMOKE TESTS / HEALTH CHECKS
ADD NEW CONTAINER TO LB
REMOVE OLD CONTAINER FROM LB
STOP OLD CONTAINER
docker pull
@michieltcs
DEPLOYING
PULL IMAGE
START NEW CONTAINER
WAIT FOR PORT
SMOKE TESTS / HEALTH CHECKS
ADD NEW CONTAINER TO LB
REMOVE OLD CONTAINER FROM LB
STOP OLD CONTAINER
docker run
@michieltcs
DEPLOYING
PULL IMAGE
START NEW CONTAINER
WAIT FOR PORT
SMOKE TESTS / HEALTH CHECKS
ADD NEW CONTAINER TO LB
REMOVE OLD CONTAINER FROM LB
STOP OLD CONTAINER
wait_for: port=8080 delay=5 timeout=15
@michieltcs
DEPLOYING
PULL IMAGE
START NEW CONTAINER
WAIT FOR PORT
SMOKE TESTS / HEALTH CHECKS
ADD NEW CONTAINER TO LB
REMOVE OLD CONTAINER FROM LB
STOP OLD CONTAINER
uri:

url: http://localhost:8080/_health

status_code: 200

timeout: 30
@michieltcs
DEPLOYING
PULL IMAGE
START NEW CONTAINER
WAIT FOR PORT
SMOKE TESTS / HEALTH CHECKS
ADD NEW CONTAINER TO LB
REMOVE OLD CONTAINER FROM LB
STOP OLD CONTAINER
template: src=haproxy.cfg.j2

dest=/etc/haproxy/haproxy.cfg
service: name=haproxy state=reloaded
@michieltcs
DEPLOYING
PULL IMAGE
START NEW CONTAINER
WAIT FOR PORT
SMOKE TESTS / HEALTH CHECKS
ADD NEW CONTAINER TO LB
REMOVE OLD CONTAINER FROM LB
STOP OLD CONTAINER
template: src=haproxy.cfg.j2

dest=/etc/haproxy/haproxy.cfg
service: name=haproxy state=reloaded
@michieltcs
DEPLOYING
PULL IMAGE
START NEW CONTAINER
WAIT FOR PORT
SMOKE TESTS / HEALTH CHECKS
ADD NEW CONTAINER TO LB
REMOVE OLD CONTAINER FROM LB
STOP OLD CONTAINER
docker stop
docker rm
@michieltcs
BUILD PIPELINE
@michieltcs
FEEDBACK!
RESULTS
RESULTS
▸ Total build time per service < 10 minutes
▸ Significantly improved page load times
▸ Improved audience stats (time on page, pages per session,
session duration, traffic, seo ranking, etc)
▸ Increased confidence and velocity
▸ Experimented with new tech/stacks (angular, jvm, event
sourcing)
▸ More fun
@michieltcs
LESSONS LEARNED
▸ Team acceptance
▸ Change is hard
▸ Mentality / discipline
▸ Docker stability/orchestration
▸ Issues with traffic between Amazon <-> on-premise
datacenter
@michieltcs
LESSONS LEARNED
▸ Experience with new tech
▸ Stability of build pipelines
▸ Business alignment
▸ Limit feature toggles
▸ Keep focus on replacing legacy application
@michieltcs
The Road to Continuous Deployment
The Road to Continuous Deployment
Turn-key Continuous Deployment
Zero downtime
deployments
Modern, autoscaling
infrastructure with
built-in monitoring
Pipeline in five
minutes
THANK YOU!
@michieltcs / michiel@make.io
Turn-key Continuous Deployment

More Related Content

PDF
Getting out of the Job Jungle with Jenkins
PDF
Brujug Jenkins pipeline scalability
PPTX
JUC 2015 Pipeline Scaling
PDF
Drone CI
PDF
Codecoon - A technical Case Study
PPTX
7 Habits of Highly Effective Jenkins Users
PPTX
Jenkins days workshop pipelines - Eric Long
PDF
Improve your Java Environment with Docker
Getting out of the Job Jungle with Jenkins
Brujug Jenkins pipeline scalability
JUC 2015 Pipeline Scaling
Drone CI
Codecoon - A technical Case Study
7 Habits of Highly Effective Jenkins Users
Jenkins days workshop pipelines - Eric Long
Improve your Java Environment with Docker

What's hot (19)

PDF
7 Habits of Highly Effective Jenkins Users
PDF
JUC Europe 2015: Scaling Your Jenkins Master with Docker
PDF
Zalenium - SeleniumConf Austin 2017
PDF
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
PDF
Dockercon2015 bamboo
PDF
JUC Europe 2015: Scaling of Jenkins Pipeline Creation and Maintenance
PDF
At Your Service: Using Jenkins in Operations
PDF
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
PDF
Game of Codes: the Battle for CI
PDF
Rundeck's History and Future
PDF
Drone Continuous Integration
PDF
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
PDF
Docker for Integration Testing
PDF
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
PPTX
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
PDF
Testing with Docker
PDF
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
PDF
Docker
ODP
Scaling your jenkins master with docker
7 Habits of Highly Effective Jenkins Users
JUC Europe 2015: Scaling Your Jenkins Master with Docker
Zalenium - SeleniumConf Austin 2017
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
Dockercon2015 bamboo
JUC Europe 2015: Scaling of Jenkins Pipeline Creation and Maintenance
At Your Service: Using Jenkins in Operations
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Game of Codes: the Battle for CI
Rundeck's History and Future
Drone Continuous Integration
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Docker for Integration Testing
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Testing with Docker
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
Docker
Scaling your jenkins master with docker
Ad

Viewers also liked (20)

PDF
Modern Infrastructure Automation
PPTX
DevOps Friendly Doc Publishing for APIs & Microservices
PDF
Continuous Everyone: Engaging People Across the Continuous Pipeline
PPTX
Starting and Scaling DevOps In the Enterprise
PPTX
DevOps and Continuous Delivery Reference Architectures - Volume 2
PDF
Hidden Speed Bumps on the Road to "Continuous"
PDF
Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors
PDF
Terraforming your Infrastructure
PDF
Tools & Techniques for Addressing Component Vulnerabilities for PCI Compliance
PDF
Continuous Delivery Pipeline - Patterns and Anti-patterns
PPTX
Agile for Startups
PPTX
Enabing DevOps in an SDN World
PDF
There is No Server: Immutable Infrastructure and Serverless Architecture
PPTX
Compliance as Code - Using the Open Source InSpec testing Framework
PDF
Introduction to Ansible (Pycon7 2016)
PDF
Meta Infrastructure as Code: How Capital One Automated Our Automation Tools w...
PDF
System Hardening Using Ansible
PDF
The Unrealized Role of Monitoring & Alerting w/ Jason Hand
PDF
Ansible 實戰:top down 觀點
PPTX
Automated Deployments
Modern Infrastructure Automation
DevOps Friendly Doc Publishing for APIs & Microservices
Continuous Everyone: Engaging People Across the Continuous Pipeline
Starting and Scaling DevOps In the Enterprise
DevOps and Continuous Delivery Reference Architectures - Volume 2
Hidden Speed Bumps on the Road to "Continuous"
Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors
Terraforming your Infrastructure
Tools & Techniques for Addressing Component Vulnerabilities for PCI Compliance
Continuous Delivery Pipeline - Patterns and Anti-patterns
Agile for Startups
Enabing DevOps in an SDN World
There is No Server: Immutable Infrastructure and Serverless Architecture
Compliance as Code - Using the Open Source InSpec testing Framework
Introduction to Ansible (Pycon7 2016)
Meta Infrastructure as Code: How Capital One Automated Our Automation Tools w...
System Hardening Using Ansible
The Unrealized Role of Monitoring & Alerting w/ Jason Hand
Ansible 實戰:top down 觀點
Automated Deployments
Ad

Similar to The Road to Continuous Deployment (20)

PDF
The road to continuous deployment (PHPCon Poland 2016)
PDF
The road to continuous deployment (DomCode September 2016)
PDF
The road to continuous deployment: a case study (DPC16)
PDF
The road to continuous deployment: a case study - Michiel Rook - Codemotion A...
PDF
(Micro?)services architecture in practice
PPTX
20180616 r gonzalez_from once per month to multiple times a day b
PPTX
drupal ci cd concept cornel univercity.pptx
PDF
7 reasons to start using Docker
PPTX
Continuous Delivery and Automated Operations on k8s with keptn
DOCX
Git as version control for Analytics project
PDF
From Web Acceleration to Content Delivery with Varnish - Howest Brugge 2024
PDF
THE PROJECT MANAGEMENT YACHT: How the World's Greatest Problem Solvers Disrup...
PDF
Let your DBAs get some REST(api)
PDF
Faster PHP apps using Queues and Workers
PDF
Docker for the Brave
PDF
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
PDF
Bring the light in your Always FREE Oracle Cloud
PDF
Becoming a Git Master
PDF
Catalyst - refactor large apps with it and have fun!
PDF
Sustainable Agile Development
The road to continuous deployment (PHPCon Poland 2016)
The road to continuous deployment (DomCode September 2016)
The road to continuous deployment: a case study (DPC16)
The road to continuous deployment: a case study - Michiel Rook - Codemotion A...
(Micro?)services architecture in practice
20180616 r gonzalez_from once per month to multiple times a day b
drupal ci cd concept cornel univercity.pptx
7 reasons to start using Docker
Continuous Delivery and Automated Operations on k8s with keptn
Git as version control for Analytics project
From Web Acceleration to Content Delivery with Varnish - Howest Brugge 2024
THE PROJECT MANAGEMENT YACHT: How the World's Greatest Problem Solvers Disrup...
Let your DBAs get some REST(api)
Faster PHP apps using Queues and Workers
Docker for the Brave
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Bring the light in your Always FREE Oracle Cloud
Becoming a Git Master
Catalyst - refactor large apps with it and have fun!
Sustainable Agile Development

More from Sonatype (19)

PPTX
DevOps Days Columbus - Derek Weeks - 2019
PDF
2019 DevSecOps Reference Architectures
PDF
RSAC DevSecOpsDays 2018 - We are all Equifax
PPTX
DevSecOps reference architectures 2018
PDF
30+ Nexus Integrations to Accelerate DevOps
PDF
2017 DevSecOps Survey
PPTX
DevOps and All the Continuouses w/ Helen Beal
PDF
Serverless and the Way Forward
PDF
A Small Association's Journey to DevOps w/ Edward Ruiz
PDF
What's My Security Policy Doing to My Help Desk w/ Chris Swan
PDF
Static Analysis For Security and DevOps Happiness w/ Justin Collins
PDF
Automated Infrastructure Security: Monitoring using FOSS
PDF
Docker Inside/Out: The 'Real' Real- World World of Stacking Containers in pro...
PDF
I, For One, Welcome Our New Robot Overlords
PDF
Monitoring, Hold the Infrastructure
PDF
Operations Delivery Business Value
PDF
Automating Security in Building Software
PDF
Multi Security Checkpoints on DevOps Platform
PDF
Taking a Selfie - Just Try to Resist! Doing Forensics the DevSecOps Way
DevOps Days Columbus - Derek Weeks - 2019
2019 DevSecOps Reference Architectures
RSAC DevSecOpsDays 2018 - We are all Equifax
DevSecOps reference architectures 2018
30+ Nexus Integrations to Accelerate DevOps
2017 DevSecOps Survey
DevOps and All the Continuouses w/ Helen Beal
Serverless and the Way Forward
A Small Association's Journey to DevOps w/ Edward Ruiz
What's My Security Policy Doing to My Help Desk w/ Chris Swan
Static Analysis For Security and DevOps Happiness w/ Justin Collins
Automated Infrastructure Security: Monitoring using FOSS
Docker Inside/Out: The 'Real' Real- World World of Stacking Containers in pro...
I, For One, Welcome Our New Robot Overlords
Monitoring, Hold the Infrastructure
Operations Delivery Business Value
Automating Security in Building Software
Multi Security Checkpoints on DevOps Platform
Taking a Selfie - Just Try to Resist! Doing Forensics the DevSecOps Way

Recently uploaded (20)

PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Essential Infomation Tech presentation.pptx
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Nekopoi APK 2025 free lastest update
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
System and Network Administraation Chapter 3
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
medical staffing services at VALiNTRY
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
top salesforce developer skills in 2025.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Essential Infomation Tech presentation.pptx
Reimagine Home Health with the Power of Agentic AI​
Wondershare Filmora 15 Crack With Activation Key [2025
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Odoo Companies in India – Driving Business Transformation.pdf
Nekopoi APK 2025 free lastest update
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
System and Network Administraation Chapter 3
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Design an Analysis of Algorithms II-SECS-1021-03
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
VVF-Customer-Presentation2025-Ver1.9.pptx
medical staffing services at VALiNTRY
Understanding Forklifts - TECH EHS Solution
Navsoft: AI-Powered Business Solutions & Custom Software Development
top salesforce developer skills in 2025.pdf

The Road to Continuous Deployment