Just What Is This Continuous Delivery Thing, Anyway?

Preview:

DESCRIPTION

DevOpsDays Portland 2013 talk. This is a different talk to the one I gave at PuppetConf - less tool focused and with more focus on the fundamentals of CD and its applicability to your area of IT.

Citation preview

Just What Is This Continuous Delivery Thing, Anyway?Eric ShamowMethodologies Lead | Puppet Labs @eshamow

Monday, November 4, 13

DevOps is about facilitating the business through IT

Monday, November 4, 13

It’s about the flow of value through your company

Monday, November 4, 13

IT is bursty

Monday, November 4, 13

Factories are Bursty

Monday, November 4, 13

Factories are Bursty...but they’ve solved a lot of this

Monday, November 4, 13

Code is Value

Monday, November 4, 13

Code is Value

“How long would it take your organization to deploy a change that involves just one single line of code? Do you do this on a repeatable, reliable basis?”

- Mary and Tom Poppendieck, Implementing Lean Software Development

Monday, November 4, 13

Flow

Business Customer

Dev Ops

Monday, November 4, 13

How do we speed up flow?Laying a foundation - Gene Kim’s Three Ways

Monday, November 4, 13

Developing Systems Thinking

The Three WaysTheory of Constraints

Monday, November 4, 13

The First Way (Automate)Systems Thinking / Flow

Business Customer

Dev Ops

Monday, November 4, 13

The First Way (Automate)

• Never pass a defect downstream

• Never allow local optimization to create global degradation

• Always look to increase flow

• Always seek understanding of the system

Monday, November 4, 13

Something’s Missing Here!

Monday, November 4, 13

The Second Way (Collaborate)Amplify Feedback Loops

Business Customer

Dev Ops

Monday, November 4, 13

The Second Way (Collaborate)

• Cross-team info sharing

• Customer feedback

• Fix bugs faster, fewer regressions

• Decrease delivery time

• Decrease unplanned work

Monday, November 4, 13

The Third Way (Ship)Culture - Continual Experimentation and Learning

Business Customer

Dev Ops

Monday, November 4, 13

The Third Way (Ship)

• Continual experimentation

• Acceptance of risk and learning from failure

• Do difficult things more often

• Deliberately inject faults

• Test business hypotheses in real time

• Add system stress to decrease cycle time

Monday, November 4, 13

How do I improve?

Look to decrease cycle timesReduce the amount changed per

cycle

Monday, November 4, 13

Don’t Optimize for Maximum Utilization

• We don’t expect our systems to operate successfully at 100% capacity

• We expect activity to burst

• If people are scheduled for 100% utilization they aren’t free for bursty activity

Monday, November 4, 13

THAT SOUNDS SO EASY!Where do we look?

Monday, November 4, 13

This is What Success Looks Like

• You haven’t read it yet

• You still haven’t read it

• Why are you still here?

• GO. READ IT NOW.

Monday, November 4, 13

Traditional Release Process

Monolithicplan

MVPcode

QA/Test Delivery

Budgeted time Delays

Monday, November 4, 13

Deployment PipelineShamelessly stolen from Jez Humble

Monday, November 4, 13

This is What Success Looks Like

• Each step in this pipeline gets deployed using the CM tools and techniques

• Each landscape is as close to prod as you can get

• Each deployment looks like a production deployment

• Each deployment tests the rollout again

• By the time you release to prod, this build has been deployed A LOT

Monday, November 4, 13

This is What Success Looks Like

• Frequent, automated releases

• Every check-in is a potential release

• Every change triggers feedback

• Feedback must be received as soon as possible

• Automate almost everything

• Build quality in

- Chris Hilton, Beyond Continuous Delivery

Monday, November 4, 13

Building a Pipeline

Don’t Get Into Tooling Food Fights

Monday, November 4, 13

How Do We Get Buy-In?Target internal customer needs

Monday, November 4, 13

Why I Want CD (if I’m the Business)

• Innovate Faster

• Respond to Market Demands

• Fix Screw-Ups

• Lean/Agile

Monday, November 4, 13

Why I Want CD? (If I’m Dev)

• I can’t test against prod unless my environment looks like prod

• Finding out root cause is really hard

• Merge windows are really hard

• I need QA/Test feedback quickly

Monday, November 4, 13

Why I Want CD? (If I’m Ops)

• Ensure I get real handoff from Dev

• Infrastructure changes tested along with apps

• Small changes that don’t blow up prod on deploy day

• Ensure changes are thoroughly tested before deploy

• Self-service

Monday, November 4, 13

Fear Is the Mind Killer

You can still release as slowly as you want.

You just have the option to go faster

Monday, November 4, 13

It’s a Culture Shift

• Tool choice is not as important as tool sharing

• People and culture can work around bad tools

• Everybody owns the pipeline

• If the build is broken, it’s everybody’s problem

• We’re on the same team

Monday, November 4, 13

Thank YouEric ShamowMethodologies Lead | Puppet Labs @eshamow

Monday, November 4, 13

Recommended