what is this continuous delivery thing anyway? - puppetconf 2013

40
What Is This Continuous Delivery Thing, Anyway? Eric Shamow Methodologies Lead / Product Owner | Puppet Labs @eshamow Friday, August 23, 13

Upload: puppet-labs

Post on 28-Jan-2015

108 views

Category:

Technology


0 download

DESCRIPTION

"What Is This Continuous Delivery Thing Anyway?" by Eric Shamow, Product Owner, Continuous Delivery, Puppet Labs. Presentation Overview: An introduction to Continuous Delivery with a focus on Puppet and Operations teams - what is Continuous Delivery, why does my company or Development team want it, and what does it do for me? We'll focus on what you can do with Puppet now to enable an environment that encourages rapid iteration, how Operations can reach out to help Development get on this path (and what Development can ask for from Ops if they aren't helping out), and what Puppet is currently working on to make Continuous Delivery available to every organization. Speaker Bio: Eric Shamow is methodologies lead and a product owner at Puppet Labs. He has worked in IT for over 15 years in a diverse group of organizations from education to finance. Eric's passion is for culture change, and his work with Puppet has brought him to some of the most recognized companies in the industry, consulting on both technology and organizational process.

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