Just What Is This Continuous Delivery Thing, Anyway? Eric Shamow Methodologies Lead | Puppet Labs @eshamow Monday, November 4, 13
May 08, 2015
Just What Is This Continuous Delivery Thing, Anyway?Eric ShamowMethodologies Lead | Puppet Labs @eshamow
Monday, November 4, 13
DevOps is about facilitating the business through IT
Monday, November 4, 13
It’s about the flow of value through your company
Monday, November 4, 13
IT is bursty
Monday, November 4, 13
Factories are Bursty
Monday, November 4, 13
Factories are Bursty...but they’ve solved a lot of this
Monday, November 4, 13
Code is Value
Monday, November 4, 13
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
Flow
Business Customer
Dev Ops
Monday, November 4, 13
How do we speed up flow?Laying a foundation - Gene Kim’s Three Ways
Monday, November 4, 13
Developing Systems Thinking
The Three WaysTheory of Constraints
Monday, November 4, 13
The First Way (Automate)Systems Thinking / Flow
Business Customer
Dev Ops
Monday, November 4, 13
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
Something’s Missing Here!
Monday, November 4, 13
The Second Way (Collaborate)Amplify Feedback Loops
Business Customer
Dev Ops
Monday, November 4, 13
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
The Third Way (Ship)Culture - Continual Experimentation and Learning
Business Customer
Dev Ops
Monday, November 4, 13
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
How do I improve?
Look to decrease cycle timesReduce the amount changed per
cycle
Monday, November 4, 13
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
THAT SOUNDS SO EASY!Where do we look?
Monday, November 4, 13
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
Traditional Release Process
Monolithicplan
MVPcode
QA/Test Delivery
Budgeted time Delays
Monday, November 4, 13
Deployment PipelineShamelessly stolen from Jez Humble
Monday, November 4, 13
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
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
Building a Pipeline
Don’t Get Into Tooling Food Fights
Monday, November 4, 13
How Do We Get Buy-In?Target internal customer needs
Monday, November 4, 13
Why I Want CD (if I’m the Business)
• Innovate Faster
• Respond to Market Demands
• Fix Screw-Ups
• Lean/Agile
Monday, November 4, 13
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
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
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
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
Thank YouEric ShamowMethodologies Lead | Puppet Labs @eshamow
Monday, November 4, 13