Just What Is This Continuous Delivery Thing, Anyway?

34
Just What Is This Continuous Delivery Thing, Anyway? Eric Shamow Methodologies Lead | Puppet Labs @eshamow Monday, November 4, 13

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.

Transcript of Just What Is This Continuous Delivery Thing, Anyway?

Page 1: Just What Is This Continuous Delivery Thing, Anyway?

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

Monday, November 4, 13

Page 2: Just What Is This Continuous Delivery Thing, Anyway?

DevOps is about facilitating the business through IT

Monday, November 4, 13

Page 3: Just What Is This Continuous Delivery Thing, Anyway?

It’s about the flow of value through your company

Monday, November 4, 13

Page 4: Just What Is This Continuous Delivery Thing, Anyway?

IT is bursty

Monday, November 4, 13

Page 5: Just What Is This Continuous Delivery Thing, Anyway?

Factories are Bursty

Monday, November 4, 13

Page 6: Just What Is This Continuous Delivery Thing, Anyway?

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

Monday, November 4, 13

Page 7: Just What Is This Continuous Delivery Thing, Anyway?

Code is Value

Monday, November 4, 13

Page 8: Just What Is This Continuous Delivery Thing, Anyway?

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

Page 9: Just What Is This Continuous Delivery Thing, Anyway?

Flow

Business Customer

Dev Ops

Monday, November 4, 13

Page 10: Just What Is This Continuous Delivery Thing, Anyway?

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

Monday, November 4, 13

Page 11: Just What Is This Continuous Delivery Thing, Anyway?

Developing Systems Thinking

The Three WaysTheory of Constraints

Monday, November 4, 13

Page 12: Just What Is This Continuous Delivery Thing, Anyway?

The First Way (Automate)Systems Thinking / Flow

Business Customer

Dev Ops

Monday, November 4, 13

Page 13: Just What Is This Continuous Delivery Thing, Anyway?

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

Page 14: Just What Is This Continuous Delivery Thing, Anyway?

Something’s Missing Here!

Monday, November 4, 13

Page 15: Just What Is This Continuous Delivery Thing, Anyway?

The Second Way (Collaborate)Amplify Feedback Loops

Business Customer

Dev Ops

Monday, November 4, 13

Page 16: Just What Is This Continuous Delivery Thing, Anyway?

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

Page 17: Just What Is This Continuous Delivery Thing, Anyway?

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

Business Customer

Dev Ops

Monday, November 4, 13

Page 18: Just What Is This Continuous Delivery Thing, Anyway?

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

Page 19: Just What Is This Continuous Delivery Thing, Anyway?

How do I improve?

Look to decrease cycle timesReduce the amount changed per

cycle

Monday, November 4, 13

Page 20: Just What Is This Continuous Delivery Thing, Anyway?

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

Page 21: Just What Is This Continuous Delivery Thing, Anyway?

THAT SOUNDS SO EASY!Where do we look?

Monday, November 4, 13

Page 22: Just What Is This Continuous Delivery Thing, Anyway?

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

Page 23: Just What Is This Continuous Delivery Thing, Anyway?

Traditional Release Process

Monolithicplan

MVPcode

QA/Test Delivery

Budgeted time Delays

Monday, November 4, 13

Page 24: Just What Is This Continuous Delivery Thing, Anyway?

Deployment PipelineShamelessly stolen from Jez Humble

Monday, November 4, 13

Page 25: Just What Is This Continuous Delivery Thing, Anyway?

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

Page 26: Just What Is This Continuous Delivery Thing, Anyway?

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

Page 27: Just What Is This Continuous Delivery Thing, Anyway?

Building a Pipeline

Don’t Get Into Tooling Food Fights

Monday, November 4, 13

Page 28: Just What Is This Continuous Delivery Thing, Anyway?

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

Monday, November 4, 13

Page 29: Just What Is This Continuous Delivery Thing, Anyway?

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

• Innovate Faster

• Respond to Market Demands

• Fix Screw-Ups

• Lean/Agile

Monday, November 4, 13

Page 30: Just What Is This Continuous Delivery Thing, Anyway?

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

Page 31: Just What Is This Continuous Delivery Thing, Anyway?

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

Page 32: Just What Is This Continuous Delivery Thing, Anyway?

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

Page 33: Just What Is This Continuous Delivery Thing, Anyway?

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

Page 34: Just What Is This Continuous Delivery Thing, Anyway?

Thank YouEric ShamowMethodologies Lead | Puppet Labs @eshamow

Monday, November 4, 13