Download - The Continuous Delivery process
Continuous Deliveryan overview
@joebew42
Delivery
We want to bring valueto our customers
How we deliver value?
Putting working softwarein production
How we put “working” software in production
How we put “working” software in production● E.g. Package and deploy in production through a manual procedure
○ What are possible risks here■ Increased risk of release■ Long time releases■ Poor documentation■ Human error■ Stress■ Not automatic / Not repeatable■ Black friday, for real!■ Cowboy style
Let’s go with Automation
Let’s go with Automation● How?
○ E.g. lay down a script that does the manual work for you● What we earn?
○ Auto documentation○ Repeatable○ Everything is in one authoritative place○ Fast and easy deployments
● What are the risks?○ Long time releases (we take weeks or months for production deployment)○ Someone has to manual trigger it○ Lose visibility into what we released in production
■ E.g. versions and history
Let’s go Continuous
Let’s go Continuous● How?
○ Triggers script on every code changes● What we earn?
○ Shared code base○ Release more frequently○ Automatic deployment○ Visibility on what is released
● What are the risks?○ Introduce bugs in production is easier○ Less confidence about what works and what does not
Let’s go with Integration
Let’s go with Integration● How?
○ Test the behaviour of the software in a production-like environment
● What we earn?○ Catch bugs before you get into production○ More confidence about what works and what does not
● What are the risks?○ Feedback loops can take a long time
Let’s go with Integration (part II)
Let’s go with Integration (part II)● How?
○ Write tests that can be easily launched on the local machine
● What we earn?○ Catch bugs before you get into production○ More confidence about what works and what does not○ Instant feedback upon code changes○ Local code changes do not affect shared code base○ Each release is production-ready
● What is still missing here?○ A better release management
■ e.g. we don’t want to release on Friday afternoon■ e.g. feature is ready but the monitoring is not■ e.g. we want to collect metrics before get into production■ other ...
Let’s go with Delivery● How?
○ Understand how to deliver business value in a sustainable yet efficient way
● What we earn?○ Visualize and observe the entire process of delivery○ Whole team is involved○ Separate the build from the deployment process
● Can we go better?○ The process change over time in order to meet the new team needs○ Gather feedbacks and ask why & how the process should be improved:
■ e.g. Retrospectives and showcases■ e.g. The 5 Whys technique can be helpful to find the root cause of a problem■ e.g. Maybe someone external have to get into the team
○ Rotate the people○ Each team has its own process of Continuous Delivery
Some hints for your team● The delivery process is one of your responsibilities● The process you use to deliver value is a model that changes over time in
order to adapt to requirements changes○ Inspect and adapt○ Gather feedback○ Invite the right people○ Fail fast, fail often … Safely
● Try to learn more about your business● Try to be autonomous
Some numbers
From “The Phoenix Project”
COMPANY DEPLOYFREQUENCY
DEPLOYLEAD TIME
RELIABILITY CUSTOMERFEEDBACK
AMAZON 23.000/day minutes high high
GOOGLE 5.500/day minutes high high
NETFLIX 500/day minutes high high
FACEBOOK 1/day hours high high
TWITTER 3/week hours high high
TYPICAL ENTERPRISE
once every9 months
months or more low/medium low/medium
Going further ...By book: Continuous DeliveryJez Humble and David Farley
By web: https://continuousdelivery.com/Is maintained by Jez Humble. This website is a good place to keep you up to date about CD topics.
By book: The Phoenix ProjectGene Kim, Kevin Behr and George Spafford
Is a novel about IT, DevOps and helping your business win