continuous delivery maturity model

Post on 11-May-2015

3.089 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

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

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.

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

UrbanCode Inc. ©2013

Mature or crazy?

UrbanCode Inc. ©2013

Why a maturity model?

How­awesome­is­my­team?

Winning!

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

UrbanCode Inc. ©2013

The Model

UrbanCode Inc. ©2013

Credit Where Due

UrbanCode Inc. ©2013

5 Levels

Base

Beginner

Intermediate

Advanced

Extreme

UrbanCode Inc. ©2013

Four categories, held together with culture

Cultu

reCommunicateMeasureDeployBuild

UrbanCode Inc. ©2013

Build

UrbanCode Inc. ©2013

Dependencies are the hard part

UrbanCode Inc. ©2013

Deploying

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

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

UrbanCode Inc. ©2013

Most people fall into the Build + ADA pattern

Pipeline here

UrbanCode Inc. ©2013

Measure & Test

UrbanCode Inc. ©2013

UrbanCode Inc. ©2013

Communication & Reports

UrbanCode Inc. ©2013

There are inter-dependencies

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

UrbanCode Inc. ©2013

We’re not all the same

UrbanCode Inc. ©2013

Applying the Model

UrbanCode Inc. ©2013

Basic Plan

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

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!

UrbanCode Inc. ©2013

Make it safe to go fast

UrbanCode Inc. ©2013

Audit for El Emeno

Build­ Continuous integration (each team has own tool)

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

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

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

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

UrbanCode Inc. ©2013

Bottlenecks for El Emeno

• Mostly okBuild

• Need easy audit trail for approvals and deployments

• Shared reporting a“nice-to-have”

Communicate

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

UrbanCode Inc. ©2013

Scoring current vs future

Build Deploy Testing Reporting0

1

2

3

4

5

CurrentFuture

Base

Beginner

Intermediate

Advanced

Extreme

UrbanCode Inc. ©2013

Prioritization: observations

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

Testers are spending time de-bugging bad deployments

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

UrbanCode Inc. ©2013

A simple maturity model

Urbancode.com/resources

UrbanCode Inc. ©2013

What are you doing Monday?

Download the Maturity Model and talk your team

Are we where we need to be?

UrbanCode Inc. ©2013

What are you doing in two months?

Implementing updates to your Continuous Delivery capabilities

Thank you!

@EricMinickUrbancode.com/resources/

top related