Download - What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

Transcript
Page 1: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

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

Friday, August 23, 13

Page 2: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Who am I?

Friday, August 23, 13

Page 3: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

What is Continuous Delivery?It’s about cycle time

Friday, August 23, 13

Page 4: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Code is Value

Friday, August 23, 13

Page 5: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

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

Friday, August 23, 13

Page 6: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Code is Value

“Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”

- First Principle, Agile Manifesto

Friday, August 23, 13

Page 7: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

Gene Kim’s Three WaysLaying a foundation

Friday, August 23, 13

Page 8: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Developing Systems Thinking

The Three WaysTheory of Constraints

Friday, August 23, 13

Page 9: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

The First Way (Automate)Systems Thinking / Flow

Business Customer

Dev Ops

Friday, August 23, 13

Page 10: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

The First Way (Automate)

• Never pass a defect downstream

• Never allow local optimization to create global degradation

• Always look to increase flow

• Always seek to achieve profound understanding of the system

Friday, August 23, 13

Page 11: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

The Second Way (Collaborate)Amplify Feedback Loops

Business Customer

Dev Ops

Friday, August 23, 13

Page 12: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

The Second Way (Collaborate)

• Foster information sharing across teams

• Better understanding of customers

• Fix defects faster, prevent regressions

• Adapt processes to other teams

• Decrease delivery time, decrease unplanned work

Friday, August 23, 13

Page 13: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

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

Business Customer

Dev Ops

Friday, August 23, 13

Page 14: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

The Third Way (Ship)• Continual experimentation

• Acceptance of risk and learning from failure

• Do difficult things more often to gain mastery

• Inject faults into production/practice outages

• Test business hypotheses through pipeline results

• Add system stress to decrease cycle time

Friday, August 23, 13

Page 15: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Now Your Organization Can Do Lean/Agile

Friday, August 23, 13

Page 16: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

So, Back To Cycle TimesWe want to reduce them. Where do we look?

Friday, August 23, 13

Page 17: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Traditional Release Process

Monolithicplan

MVPcode

QA/Test Delivery

Budgeted time Delays

Friday, August 23, 13

Page 18: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

This is What Failure Looks Like

Friday, August 23, 13

Page 19: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Cycle Time Is Key

“The periodicity of integration decayed...so it ended up that it took between 1 and 3 months for my code to get to the root node, and some multiple of that for it to reach the other nodes.”

- Moishe Lettvin - The Windows Shutdown Crapfest

Friday, August 23, 13

Page 20: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

This is What Success Looks Like

Friday, August 23, 13

Page 21: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

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.

Friday, August 23, 13

Page 22: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

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

Friday, August 23, 13

Page 23: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Deployment PipelineShamelessly stolen from Jez Humble

Friday, August 23, 13

Page 24: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

How Does CD Work?Building a Delivery Pipeline

Friday, August 23, 13

Page 25: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Divide Toolkit Into Components

• Continuous Integration Tooling

• Configuration Management

• Application Deployment

• Monitoring/Metrics

Friday, August 23, 13

Page 26: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Continuous Integration ToolingCI Server - Jenkins

Friday, August 23, 13

Page 27: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Continuous Integration ToolingVCS Integration

Everything gets checked into trunk

Continuous Integration means you continuously (multiple times a day) integrate (check all of your

code together)

Friday, August 23, 13

Page 28: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Configuration Management

• Puppet

• Integrate Puppet with VCS

Friday, August 23, 13

Page 29: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Configuration Management• Integrate Puppet with VCS

Friday, August 23, 13

Page 30: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Configuration Management• Integrate Puppet with VCS

Friday, August 23, 13

Page 31: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Application Deployment

• Puppet for middleware

• Mcollective for more complex orchestration

Friday, August 23, 13

Page 32: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Monitoring/Metrics

• Don’t just rely on your CI tool

• Graphite

• Logstash

• Splunk

• Nagios

Friday, August 23, 13

Page 33: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Event Inspector

Friday, August 23, 13

Page 34: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

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

Friday, August 23, 13

Page 35: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

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

• Innovate Faster

• Respond to Market Demands

• Fix Screw-Ups

• Lean/Agile

Friday, August 23, 13

Page 36: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Why Do 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

Friday, August 23, 13

Page 37: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

Why Do 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

Friday, August 23, 13

Page 38: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

puppetconf.com #puppetconf

It’s a Culture Shift

• Tooling is important

• People and culture are more important

• Everybody owns the pipeline

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

• We’re on the same team

Friday, August 23, 13

Page 39: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

Thank YouEric ShamowMethodologies Lead / Product Owner | Puppet Labs @eshamow

Collaborate. Automate. Ship.

Friday, August 23, 13

Page 40: What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

Follow us on Twitter @puppetlabs

youtube.com/puppetlabsinc

slideshare.net/puppetlabs

Collaborate. Automate. Ship.

Friday, August 23, 13