Roll Forward,
Roll Back,
Cancel the Release
About Me
- I help people take Vacations!
- Principal Engineer at Orbitz
- Continuous Delivery Advocate
- DevOps into Personal life
- 5 person scrum team
- CD of Children
- theFlatironLife.com
- twitter.com/JacobTomaw
Jacob Tomaw
About Orbitz
- Founded in 2000
- Built in Chicago
- 180+ Applications
- ~5000 VMs
- 35-ish Teams
- A Great Place to Work
- Hiring!
Deployment History
-
2000: One-App, On-Demand
-
Mid 2001: One-App, Weekly
-
Spring 2002: Two-App, Weekly
-
Fall 2002: More Sites, Bi-Weekly
-
2005: Bi-weekly - technically
-
2006: Releases nearly halted
-
2006: Global Platform Refactoring
-
2010: Weekly, but...
-
2011: Bi-Weekly
-
Everything was under control
Why Go Faster?
Business needs and wants us to take measured risk.
Technically comfortable with less than the best.
When everything is under control, you are not taking enough risk.
Transformed into a learning organization.
Innovate Sooner
- Rolling Forward
- Rolling Back
- Cancelling the Release
What about obstacles?
Obstacles: A Sampling
10+ Teams - 100+ Contributors
Multiple Products
Lengthy Regression Testing
Compliance
Deployment Procedures
User Acceptance Testing
Third Party Integration
Evolving Infrastructure
Different Team Priorities
Large Change Sets
Patches
- Someone Discovers an issue
- Product Assesses Priority
- An Engineer Assesses LoE
- Product determines relative value
- Engineering fixes
- Product champions deployment
Practice
Team Effort
Pre-Prod
Prod
- A Tester Discovers an issue
- An Engineer Fixes the issue
- A new version of deployed
Rubrics
Roll Procedures
Can this remain in this environment?
Can this go to the next environment?
Existing Standards
Simple Deployment Procedures
Low Impact Deployment
Forwards or Back
A deployment is a deployment
Is the solution known?
Is the cost of the issue worth more than a deployment?
Roll Time
Roll Cost
Roll forward/Roll back variation
Certification Requirements
Product Owners
Persistent Production Problem
- Application Rolls into Production
- Several Hours Later Starts Failing
- Instincts Kick In, We try for days to save the release
- Finally Roll Back
- Problem continues
- Lost days of feedback
What we learned
Dev<-->Ops communication is not perfect
Large Change Sets are bad
Roll Back Early
Be Ready to Re-Roll
Use the Rubric
Hidden Change Sets are worse
Late Bug
- Historically Coupled Applications
- Bug Found in one of three applications
- Old Habits Kick in
- Pressure
- Hope
- Negotiation
- Pleading
- Relent
Use the Rubric
Shoulda killed The Release
Architecture Has Improved
There is always another release
Have since further decoupled the releases
Applications and Process are now Independent
"Hardest" application has achieved the most
With Great Power...
- Inversion of Accountability
- Critical Issue Found
- Poorly Responsive Team
- Cancelled the Release
The System Worked!
Used the Rubric
Don't Let Perfect be the Enemy of the Good
User Acceptance Testing
Asymmetric Testing Requirements
Two Testing Environments with Limited Scope
Historic Procedure was too costly
All Your Base Are Belong to You
Internal Cloud
Simplified Standard Deploys
Clearer Ownership
Infrastructure as a Service
On Demand Environments
Work in Progress
Never Done
This is some of what we have done.
There are other problems we have not solved yet.
There are even more problems we don't know we need to solve.
You have your own things.
Love the Journey
Everything changes
People
Market
Process
You
What Is Next For Orbitz?
- Faster
- Smaller
- Empowered Autonomy
Faster...Faster!
Fight for daily releases.
But don't fight for every day's release.
The ability and willingness are most important.
DevOpsTestProduct Teams
There is no Pre-Prod
Continuous Delivery Means Tearing Down more Silos
Empower Testers
Enable Product
Allow Specialists to focus
Build Rubrics.
What is next for you?
Make more frequent release a normal part of work.
Plan for failure.
Have only Prod Environment.
Roll forward, Roll back, Cancel the Release
By Jacob Tomaw
Roll forward, Roll back, Cancel the Release
- 1,889