What is Continuous Delivery?
Alan Parkinson
@alan_parkinson
Hindsight Software
a lean Start-up
Fast feedback
Are we building the right thing?
Software as a
Competitive Advantage
Creating a feature is an
investment
Has no return until it is
being used
The Last Mile: Releasing
Releasing
Software is
Stressful
Are we all Agile?
our highest priority is to satisfy
the customer through early and
continuous delivery
of valuable software
“
”
effective pattern for getting
software from
development to release
if it hurt’s, do it
more often
Low-risk, frequent, cheap, rapid
and predictable process
Continuous Delivery
!=
Continuous Deployment
The Deployment Pipeline
automated implementation of your
build, test, deploy, and release process
Commit
Stage
Automated
Acceptance
Checks
Automated
Capacity
Checks
Manual
Testing?
Release
Commit
Stage
Automated
Acceptance
Checks
Automated
Capacity
Checks
Manual
Testing?
Release
Small batch sizes
Fail fast and give feedback
released to customers
Cycle Time
commit to release
Pattern 2 - Deployment
one deployment script
to rule them all
CC Attribution-ShareAlike: mendhak
https://flic.kr/p/62WDfS
minimise the differences between
environments
effective pattern for getting
software from
development to release
Pipeline Summary
• Build a installable Binary once
• Pass the built binary through quality gates
• Trigger the pipeline on every change
• Done == Released to Customers
• Based on Lean Thinking
• Avoid queues in the pipeline
• Track cycle time
• Business decides when to release
Deployment Summary
• One Deployment Script for all Environments
• Automate everything – Push one button
• Version Control all configuration
• Environments should match where practical
Continuous Delivery:
Reliable Software Releases
Through Build, Test, and
Deployment Automation
By Jez Humble
And Dave Farley
Build Quality In
Continuous Delivery and
DevOps Experience Reports
70% of author royalties to
Code Club
leanpub.com/buildqualityin
@buildqualityin
Questions?
Thank you
@alan_parkinson
Testing in Continuous Delivery
Commit
Stage
Automated
Acceptance
Checks
Automated
Capacity
Checks
Manual
Testing
Release
Canary Deployments
Commit
Stage
Automated
Acceptance
Checks
Automated
Capacity
Checks
Manual
Testing
Release
Exploratory Testing
Feature Toggles

What is Continuous Delivery?

Editor's Notes

  • #3 Start-up Follow Learn Start-up We pratitice CD during product development and always looking to get feature into customers hands
  • #4  Fast feedback – Are we building the right thing?
  • #6 You see no ROI from a new feature until it’s released to customers What cold of the business have done with the money while it waits?
  • #7 Delivering software from Testing to Production is known as the last mile. Teams often batch up several sprints worth of changes all to be deployed at the same time
  • #8 Heartbleed bug – How many of you would feel comfortable fixing it a 5pm on a Friday?
  • #9 Manual configuration of system takes a long time Many issues found during deployment - People working weekends. - Emergency fixes from Developers and Testers Deployment manual rewritten during deployments for work arounds Staging and Production Environments don’t match Separate Operations team – They are interested in SLA’s and not getting the latest features into production Office of National Statistics can no longer deploy because the system is so brittle.
  • #11 First Principle behind the Agile Manifesto Agile methods and implementations focus on requirements to development and test, not getting working software to the customer.
  • #14 The aim of doing releases more frequently
  • #18 It seems so simple that it couldn’t possibly make that big of difference, but it does. And there is historical precedent for it as well. The principle of working is small batches has proved it’s merit in Agile software development and on an even larger stage during the manufacturing revolutions of the 1970s and 1980s.
  • #22 Take a Drink
  • #24 One button push deployment Testing, Staging, and Production should all use the same deployment scripts Using the same script means it gets checked every time the pipeline is executed
  • #27 First Principle behind the Agile Manifesto Agile methods and implementations focus on requirements to development and test, not getting working software to the customer.
  • #31 A book on Continuous Delivery and DevOps Experience Reports
  • #32 Take a Drink
  • #33 Take a Drink