The Continuous Delivery process

Preview:

Citation preview

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

Recommended