SlideShare a Scribd company logo
Introduction to Continuous Delivery
André Meurer
@themeurer
Head of Software Engineering @ Olympic
How long would it take to get a
one line code change
into production using the current process?
Idea
Funding
Analysis
Test
Deploy
Water-scrum-fall
The last mile
The “tail period” or “last mile”
• Time from code freeze to release
– Beta & regression testing
– Code integration & integration testing
– Documentation
– Bug fixing
– Deployments
Continuous Delivery is about
reducing risk of releases
and making deployments boring
Reduce risk of releases
Fast, automated feedback on the production
readiness of your application every time there is a
change
Constant flow of
small increments into production
Software always production ready
Key Principles
• Constant flow of small incremental changes into prod
• Software always production ready
• Automate almost everything
• Build, deploy, test, release, repeat
• Use humans for high value stuff
• Manual testing, approvals
• Keep everything in source control
• If it hurts, do it more often, and bring the pain forward
• Done means released in production
• Continuous improvement – don’t try to do it all at once
Build the right thing
• Every business idea is just a hypotesis
• Most features are rarely or never used
• Don’t ask customers what they want: try it out
• Release a minimum viable product
• Can respond quickly to market demands
• Hypotesis – MVP – Analyse – Repeat
Failure will happen
Faster feedback
Delivery Pipeline
Testing & promoting
Continuous integration
• Early integration
• Everyone’s changes integrated frequently in the same place
• Build & test at every check-in
• Rapid feedback
• It’s a practice, not a tool
Introduction to continuous delivery
The software testing pyramid
GUI
Acceptance
tests
Unit & component
tests
More business-facing
Less stable
More realistic
Lower cost
Easier maintenance
More stable
Faster feedback
Exploratory/
manual
The software testing cupcake anti-pattern
Trunk based development
• Check-in or merge into trunk at least once per day
• Feature branches should be short lived
• Branches discourage refactoring
– People don’t know what code other team members are touching, so
they are hesitant to refactor for risk of impact
• Branches delay integration and hide risk
• Merging wastes time and is tedious
Inside out development
• Build from the bottom
– DB – Business Logic – UI
• Feature not accessible until full development is complete
• Small slices/stories to enable fast feedback
Feature toggles/switches
• Deploy incomplete features switched off
– Be aware of feature switch madness
– Switches need to be deleted as the feature is in production
• Control who can see the new feature
– Test it with a small group of users
– Ensure it handles the load
– Gradually increase group of users if appropriate
• Separate deployments from releases
Feature switches
Dev
Smaller
Many
Short
Operations Business
Larger
Few
Long
Granularity
Numbers
Lifetime
Branch by abstraction
• Parallel routes
• Make architectural changes
– Interface to create abstraction
– Abstraction layers with two working implementations
– Swap bit by bit of the code to the new architecture until complete
– Old implementation can be removed once no longer used
• DB changes
– No breaking schema changes until code is ready to deal with new
schema
Roll Forward
• Rollback strategy is complex & risky
• Easier to fix something and get it through the pipeline
Canary Releases
• Release features to smaller groups/clusters
• Test/verify stability/performance/etc.
• Roll out to more/rest of users
Blue Green deployments
• Two instances of the production environment
– Current PROD (blue)
– Upgrade environment (green)
• Start routing small groups/clusters of people to Green
environment
• Swap them
Quality
• QA inspects quality
• Everyone is responsible for quality
• QA represents the user
IT ops team close to dev team
• Sit together: Dev, QA, and Ops
• Have sysadmin as part of the development team
• Deploy to all environments the same way we deploy to
production
Delivery Pipeline Tools
• Orchestration/CI
– Team City
– Jenkins
– Bamboo
• Delivery Manager
– LiveRebel
– OctopusDeploy
• Infrastructure Automation
– Chef
– Puppet
– Bcfg2
– CFEngine
Where do I start?
• Why do you want to do it?
• It will take time, start now
• CI is first step
• Get the architecture right
• Culture of continuous improvement
• It will need investment
It’s a journey
• Fundamental change to the way most organisations ship
software
• Releases tied to business needs, not IT constraints
• Minimise lead time from idea to live (concept to cash)
• IT no longer the bottleneck
• Buy-in from client is critical
Resources
• Jez Humble: Continuous Delivery
• Patrick Kua: Implementing Continuous Delivery
• Facebook: Moving fast at scale
• John Allspaw: 10 deploys per day, dev and ops cooperation at Flickr
• David Cramer: Practicing Continuous Delivery
• Sam Newman: The path to continuous delivery
• Rolf Russell: Introduction to Continuous Delivery

More Related Content

PDF
NYC MeetUp 10.9
PDF
Agile engineering practices
PPTX
Continuous delivery - takeaways
PPTX
Continuous Delivery
PPTX
CI-CD and DevOps with Ruby
PDF
Boston MeetUp 10.10
PPT
Continuous Integration and Builds
PDF
Continuous delivery
NYC MeetUp 10.9
Agile engineering practices
Continuous delivery - takeaways
Continuous Delivery
CI-CD and DevOps with Ruby
Boston MeetUp 10.10
Continuous Integration and Builds
Continuous delivery

What's hot (20)

PDF
Audrys Kažukauskas - Introduction into Extreme Programming
PPTX
Continuous Delivery: why ? where to start ? how to scale ?
PPTX
From Agile Development to Agile Operations (QCon SF 2009)
PPTX
Extreme programming
PDF
Ncerc rlmca202 adm m1 ssm
PPTX
Continuous delivery is not finished
PPTX
Practicing Agile through Scrum
PPTX
Operation and Support using Agile
PDF
The Bottleneck Game – Jad Harb
PPTX
(Agile) engineering best practices - What every project manager should know
PPTX
Success recipe for new IT projects-Agile way. Fail Fast, Fail Early
PPTX
A glance at a scrum team in real software company
PDF
Implementing Continuous Product Delivery
PDF
Being a Professional Software Developer
PDF
Continuous delivery using jenkins
PPTX
Making software development processes to work for you
PPTX
Scrum take quality to the next level
PDF
Technical Capabilities as enabler for Agile and DevOps
PPTX
DevOps Torino Meetup - SRE Concepts
PDF
Continuous Integration
Audrys Kažukauskas - Introduction into Extreme Programming
Continuous Delivery: why ? where to start ? how to scale ?
From Agile Development to Agile Operations (QCon SF 2009)
Extreme programming
Ncerc rlmca202 adm m1 ssm
Continuous delivery is not finished
Practicing Agile through Scrum
Operation and Support using Agile
The Bottleneck Game – Jad Harb
(Agile) engineering best practices - What every project manager should know
Success recipe for new IT projects-Agile way. Fail Fast, Fail Early
A glance at a scrum team in real software company
Implementing Continuous Product Delivery
Being a Professional Software Developer
Continuous delivery using jenkins
Making software development processes to work for you
Scrum take quality to the next level
Technical Capabilities as enabler for Agile and DevOps
DevOps Torino Meetup - SRE Concepts
Continuous Integration
Ad

Similar to Introduction to continuous delivery (20)

PPTX
Agile
PPTX
Road to Continuous Delivery - Wix.com
PPTX
Testing in the new age of DevOps
PPT
what-is-devops.ppt
PPTX
Solano Labs presented at MassTLC's automated testing
PDF
Automated testing san francisco oct 2013
PPTX
State of continuous delivery in 2015 - Minsk 15-5-2015
PPTX
Павел Чуняев - State of Continuous Delivery in 2015
PPTX
Devops Mindset Essentials
PDF
Continuous Delivery Distilled
PPTX
DevOps Workshops Fall 2016
PPTX
Continuous everything
PDF
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
PDF
Journey to the center of DevOps - v6
PDF
How to achieve shorter release cycles for medical devices?
PPTX
Scaling Up Continuous Deployment
PPTX
When agility meets software quality
PDF
DevOps 101
PPTX
Continuous Delivery
PDF
Enterprise Agile - Hybrid of Methods
Agile
Road to Continuous Delivery - Wix.com
Testing in the new age of DevOps
what-is-devops.ppt
Solano Labs presented at MassTLC's automated testing
Automated testing san francisco oct 2013
State of continuous delivery in 2015 - Minsk 15-5-2015
Павел Чуняев - State of Continuous Delivery in 2015
Devops Mindset Essentials
Continuous Delivery Distilled
DevOps Workshops Fall 2016
Continuous everything
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
Journey to the center of DevOps - v6
How to achieve shorter release cycles for medical devices?
Scaling Up Continuous Deployment
When agility meets software quality
DevOps 101
Continuous Delivery
Enterprise Agile - Hybrid of Methods
Ad

Recently uploaded (20)

PDF
top salesforce developer skills in 2025.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PPTX
ai tools demonstartion for schools and inter college
PPTX
Online Work Permit System for Fast Permit Processing
PPT
Introduction Database Management System for Course Database
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
System and Network Administration Chapter 2
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Digital Strategies for Manufacturing Companies
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
top salesforce developer skills in 2025.pdf
CHAPTER 2 - PM Management and IT Context
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Wondershare Filmora 15 Crack With Activation Key [2025
Internet Downloader Manager (IDM) Crack 6.42 Build 41
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
ai tools demonstartion for schools and inter college
Online Work Permit System for Fast Permit Processing
Introduction Database Management System for Course Database
Design an Analysis of Algorithms II-SECS-1021-03
VVF-Customer-Presentation2025-Ver1.9.pptx
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
System and Network Administration Chapter 2
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Which alternative to Crystal Reports is best for small or large businesses.pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Digital Strategies for Manufacturing Companies
Operating system designcfffgfgggggggvggggggggg
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool

Introduction to continuous delivery

  • 1. Introduction to Continuous Delivery André Meurer @themeurer Head of Software Engineering @ Olympic
  • 2. How long would it take to get a one line code change into production using the current process?
  • 5. The “tail period” or “last mile” • Time from code freeze to release – Beta & regression testing – Code integration & integration testing – Documentation – Bug fixing – Deployments
  • 6. Continuous Delivery is about reducing risk of releases and making deployments boring
  • 7. Reduce risk of releases
  • 8. Fast, automated feedback on the production readiness of your application every time there is a change Constant flow of small increments into production Software always production ready
  • 9. Key Principles • Constant flow of small incremental changes into prod • Software always production ready • Automate almost everything • Build, deploy, test, release, repeat • Use humans for high value stuff • Manual testing, approvals • Keep everything in source control • If it hurts, do it more often, and bring the pain forward • Done means released in production • Continuous improvement – don’t try to do it all at once
  • 10. Build the right thing • Every business idea is just a hypotesis • Most features are rarely or never used • Don’t ask customers what they want: try it out • Release a minimum viable product • Can respond quickly to market demands • Hypotesis – MVP – Analyse – Repeat
  • 14. Continuous integration • Early integration • Everyone’s changes integrated frequently in the same place • Build & test at every check-in • Rapid feedback • It’s a practice, not a tool
  • 16. The software testing pyramid GUI Acceptance tests Unit & component tests More business-facing Less stable More realistic Lower cost Easier maintenance More stable Faster feedback Exploratory/ manual
  • 17. The software testing cupcake anti-pattern
  • 18. Trunk based development • Check-in or merge into trunk at least once per day • Feature branches should be short lived • Branches discourage refactoring – People don’t know what code other team members are touching, so they are hesitant to refactor for risk of impact • Branches delay integration and hide risk • Merging wastes time and is tedious
  • 19. Inside out development • Build from the bottom – DB – Business Logic – UI • Feature not accessible until full development is complete • Small slices/stories to enable fast feedback
  • 20. Feature toggles/switches • Deploy incomplete features switched off – Be aware of feature switch madness – Switches need to be deleted as the feature is in production • Control who can see the new feature – Test it with a small group of users – Ensure it handles the load – Gradually increase group of users if appropriate • Separate deployments from releases
  • 22. Branch by abstraction • Parallel routes • Make architectural changes – Interface to create abstraction – Abstraction layers with two working implementations – Swap bit by bit of the code to the new architecture until complete – Old implementation can be removed once no longer used • DB changes – No breaking schema changes until code is ready to deal with new schema
  • 23. Roll Forward • Rollback strategy is complex & risky • Easier to fix something and get it through the pipeline
  • 24. Canary Releases • Release features to smaller groups/clusters • Test/verify stability/performance/etc. • Roll out to more/rest of users
  • 25. Blue Green deployments • Two instances of the production environment – Current PROD (blue) – Upgrade environment (green) • Start routing small groups/clusters of people to Green environment • Swap them
  • 26. Quality • QA inspects quality • Everyone is responsible for quality • QA represents the user
  • 27. IT ops team close to dev team • Sit together: Dev, QA, and Ops • Have sysadmin as part of the development team • Deploy to all environments the same way we deploy to production
  • 28. Delivery Pipeline Tools • Orchestration/CI – Team City – Jenkins – Bamboo • Delivery Manager – LiveRebel – OctopusDeploy • Infrastructure Automation – Chef – Puppet – Bcfg2 – CFEngine
  • 29. Where do I start? • Why do you want to do it? • It will take time, start now • CI is first step • Get the architecture right • Culture of continuous improvement • It will need investment
  • 30. It’s a journey • Fundamental change to the way most organisations ship software • Releases tied to business needs, not IT constraints • Minimise lead time from idea to live (concept to cash) • IT no longer the bottleneck • Buy-in from client is critical
  • 31. Resources • Jez Humble: Continuous Delivery • Patrick Kua: Implementing Continuous Delivery • Facebook: Moving fast at scale • John Allspaw: 10 deploys per day, dev and ops cooperation at Flickr • David Cramer: Practicing Continuous Delivery • Sam Newman: The path to continuous delivery • Rolf Russell: Introduction to Continuous Delivery

Editor's Notes

  • #8: Reliability & Stability Shorter mean time to recovery If you have a small set of changes in your release, the set of possible causes is also small Enables you to figure out what the problem is & resolve it very quickly If something is really hard (i.e., releasing software), do it again and again until it becomes second nature. Don’t live with the pain: do it over and over until you are very good at it
  • #9: The faster you get feedback, the faster you can fix the problem – the cost of fixing the mistake is minimal
  • #17: Trade off Not everything can be a unit test But try to minimise the number of tests towards the top of the pyramid, focusing on as many tests as possible towards the bottom of the pyramid