continuous delivery maturity model

40
Continuous Delivery Maturity Model

Upload: ibm-urbancode-products

Post on 11-May-2015

3.085 views

Category:

Technology


2 download

DESCRIPTION

How do measure our progress in a journey towards continuous integration? What are other people doing? This presentation provides an measuring stick for CD Maturity and simple pattern for reviewing your current situation and deciding what to work on next.

TRANSCRIPT

Page 1: Continuous Delivery Maturity Model

Continuous Delivery Maturity Model

Page 2: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Who is that guy?

Techie at UrbanCode­ (now IBM)

Working on CI & CD tools for the last 10 years.

Page 3: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

IMVU’s Extreme CD: 1 App to Prod, 50 times / day

Build

Run thousands of tests

Deploy to some servers

Monitor

Deploy to remaining servers

Page 4: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Mature or crazy?

Page 5: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Why a maturity model?

How­awesome­is­my­team?

Winning!

Page 6: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Why a maturity model?

Where are we now? What are other people doing? Where do we want to be? How do we get there?

The future is here. It’s just not evenly distributed yet.”­ William Gibson

Page 7: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

The Model

Page 8: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Credit Where Due

Page 9: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

5 Levels

Base

Beginner

Intermediate

Advanced

Extreme

Page 10: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Four categories, held together with culture

Cultu

reCommunicateMeasureDeployBuild

Page 11: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Build

Page 12: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Dependencies are the hard part

Page 13: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Deploying

Page 14: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Big question: how do we coordinate components? Build Pipeline Tool

­ Pressure development to adapt to this model

CI tool + Application Deployment Automation Tool­ Add a tool that pulls from the various build systems

Page 15: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

When is each approach appropriate?

Pipeline Simple apps Low coupling between

components / services Tests validate ONE version

of ONE thing Shared tool ownership ok

Build + ADA More complex applications Higher coupling between

components / services Tests validate that the larger

system is working Dev wants to own build,

Ops wants to own deploy

Page 16: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Most people fall into the Build + ADA pattern

Pipeline here

Page 17: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Measure & Test

Page 18: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Page 19: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Communication & Reports

Page 20: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

There are inter-dependencies

Page 21: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Standard Target

Based on this model, the standard target is: Continuous builds on a distributed grid using

dependency management Auto-deploy to the first environment Extensive testing of multiple types Test results and trends are widely visible Self-service deployments to other environments

­ Production style deployments everywhere

­ Deployments coordinate tiers/services as appropriate

Page 22: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

We’re not all the same

Page 23: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Applying the Model

Page 24: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Basic Plan

Audit where you are Understand the pain points & bottlenecks Agree on where you want to be Prioritize

Page 25: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Example Persona: El Emeno Investments Securities trading is a key profit center Fast updates desired

­ Exploit transient opportunities Strict legal requirements & audits

Audit RulesDelivery TeamBusiness

Faster!

Slow down, be careful!

Page 26: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Make it safe to go fast

Page 27: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Audit for El Emeno

Build­ Continuous integration (each team has own tool)

Page 28: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Audit for El Emeno

Build­ Continuous integration (each team has own tool)

Deployment­ Some scripts, mostly manual­ Hand-offs by email­ Coordination of components based on dev oral history

Page 29: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Audit for El Emeno

Build­ Continuous integration (each team has own tool)

Deployment­ Some scripts, mostly manual­ Hand-offs by email­ Coordination of components based on dev oral history

Measure & Test­ 20% unit test coverage­ Almost no functional tests­ Security scanning tool run manually

Page 30: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Audit for El Emeno

Build­ Continuous integration (each team has own tool)

Deployment­ Some scripts, mostly manual­ Hand-offs by email­ Coordination of components based on dev oral history

Measure & Test­ 20% unit test coverage­ Almost no functional tests­ Security scanning tool run manually

Communicate­ Silo’d and emailed with hand-off requests

Page 31: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Bottlenecks for El Emeno

• Manual regression tests are too slow

• Never allocated enough time• Environment outages problematic

Measure

• Manual / semi-scripted deployments are slow

• Cost of compliance is high• Errors in deployment are risky

Deployment

Page 32: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Bottlenecks for El Emeno

• Mostly okBuild

• Need easy audit trail for approvals and deployments

• Shared reporting a“nice-to-have”

Communicate

Page 33: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Desired state

Today

Build­ Continuous integration (each team has

own tool) Deployment

­ Some scripts, mostly manual­ Hand-offs by email­ Coordination of components based on

dev oral history Measure / Test

­ 20% unit test coverage­ Almost no functional tests­ Security scanning tool used& run

manually Communicate

­ Silo’d and emailed with hand-off requests

Future

Build­ Good artifact management key

Deployment­ Consistent self-service deploys in all

environments­ Integrated with approvals & good

audit trails­ Coordinate tiers & services

Measure / Test­ Need regression testing of core

functionality­ Security scanning should happen

automatically Communicate

­ Produce test, security scan, and approval logs for releases

Page 34: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Scoring current vs future

Build Deploy Testing Reporting0

1

2

3

4

5

CurrentFuture

Base

Beginner

Intermediate

Advanced

Extreme

Page 35: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Prioritization: observations

Deploy & Test are biggest weaknesses­ Development responsiveness is a strength

Testers are spending time de-bugging bad deployments

Page 36: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

Prioritize: Plan of attack for El Emeno1 Get deployments decent.

­ Ensure we have an artifact repo for builds

2 Invest Dev & QA time savings into regression tests

3 Re-evaluate in 6-12 months

Page 37: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

A simple maturity model

Urbancode.com/resources

Page 38: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

What are you doing Monday?

Download the Maturity Model and talk your team

Are we where we need to be?

Page 39: Continuous Delivery Maturity Model

UrbanCode Inc. ©2013

What are you doing in two months?

Implementing updates to your Continuous Delivery capabilities

Page 40: Continuous Delivery Maturity Model

Thank you!

@EricMinickUrbancode.com/resources/