SlideShare a Scribd company logo
What Is This Continuous
Delivery Thing,Anyway?
Eric Shamow
Methodologies Lead / Product Owner | Puppet Labs
@eshamow
Friday, August 23, 13
puppetconf.com #puppetconf
Who am I?
Friday, August 23, 13
What is Continuous
Delivery?
It’s about cycle time
Friday, August 23, 13
puppetconf.com #puppetconf
Code is Value
Friday, August 23, 13
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
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
Gene Kim’s Three Ways
Laying a foundation
Friday, August 23, 13
puppetconf.com #puppetconf
Developing Systems Thinking
The Three WaysTheory of Constraints
Friday, August 23, 13
puppetconf.com #puppetconf
The First Way (Automate)
Systems Thinking / Flow
Business Customer
Dev Ops
Friday, August 23, 13
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
puppetconf.com #puppetconf
The Second Way (Collaborate)
Amplify Feedback Loops
Business Customer
Dev Ops
Friday, August 23, 13
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
puppetconf.com #puppetconf
The Third Way (Ship)
Culture - Continual Experimentation and Learning
Business Customer
Dev Ops
Friday, August 23, 13
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
puppetconf.com #puppetconf
Now Your Organization
Can Do Lean/Agile
Friday, August 23, 13
So,Back To Cycle Times
We want to reduce them. Where do we look?
Friday, August 23, 13
puppetconf.com #puppetconf
Traditional Release Process
Monolithic
plan
MVP
code
QA/Test Delivery
Budgeted time Delays
Friday, August 23, 13
puppetconf.com #puppetconf
This is What Failure Looks Like
Friday, August 23, 13
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
puppetconf.com #puppetconf
This is What Success Looks Like
Friday, August 23, 13
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
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
puppetconf.com #puppetconf
Deployment Pipeline
Shamelessly stolen from Jez Humble
Friday, August 23, 13
How Does CD Work?
Building a Delivery Pipeline
Friday, August 23, 13
puppetconf.com #puppetconf
Divide Toolkit Into Components
• Continuous Integration Tooling
• Configuration Management
• Application Deployment
• Monitoring/Metrics
Friday, August 23, 13
puppetconf.com #puppetconf
Continuous Integration Tooling
CI Server - Jenkins
Friday, August 23, 13
puppetconf.com #puppetconf
Continuous Integration Tooling
VCS 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
puppetconf.com #puppetconf
Configuration Management
• Puppet
• Integrate Puppet with VCS
Friday, August 23, 13
puppetconf.com #puppetconf
Configuration Management
• Integrate Puppet with VCS
Friday, August 23, 13
puppetconf.com #puppetconf
Configuration Management
• Integrate Puppet with VCS
Friday, August 23, 13
puppetconf.com #puppetconf
Application Deployment
• Puppet for middleware
• Mcollective for more complex orchestration
Friday, August 23, 13
puppetconf.com #puppetconf
Monitoring/Metrics
• Don’t just rely on your CI tool
• Graphite
• Logstash
• Splunk
• Nagios
Friday, August 23, 13
puppetconf.com #puppetconf
Event Inspector
Friday, August 23, 13
How Do We Get Buy-In?
Target internal customer needs
Friday, August 23, 13
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
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
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
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
Thank You
Eric Shamow
Methodologies Lead / Product Owner | Puppet Labs
@eshamow
Collaborate. Automate. Ship.
Friday, August 23, 13
Follow us on Twitter @puppetlabs
youtube.com/puppetlabsinc
slideshare.net/puppetlabs
Collaborate. Automate. Ship.
Friday, August 23, 13

More Related Content

What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013