What Is This Continuous Delivery Thing, Anyway?Eric ShamowMethodologies 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 WaysLaying 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 TimesWe want to reduce them. Where do we look?
Friday, August 23, 13
puppetconf.com #puppetconf
Traditional Release Process
Monolithicplan
MVPcode
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 PipelineShamelessly 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 ToolingCI Server - Jenkins
Friday, August 23, 13
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
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 YouEric ShamowMethodologies 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
Top Related