43
Rollback The Impossible Dream by James Turnbull jamtur01 @ github kartar @ twitter jamesturnbull on freenode james @ puppetlabs.com

Rollback: The Impossible Dream

Embed Size (px)

DESCRIPTION

Roll back doesn’t exist. It’s not real. It’s a fantasy, a dream, a delusion. Any vendor who tells you they have a roll back capability is lying to you. And lying to you in a downright dangerous way that will come back to haunt you at 4am in a war room when someone says:“We can’t fix this. Let’s roll back the deployment.”This talk is designed to explain and demonstrate to Operations staff:Why roll back is a fantasy and explained with a dash of Werner HeisenbergWhy it is dangerous and how you can recognize when you’re about to get trappedHow you can avoid falling into that trap of considering it an appropriate compensating control.It’ll also explain what you can actually do operationally instead of “rolling back”. This will cover other alternative compensating controls that can help you get running again and resolve your outage whilst still allowing you to find root cause.

Citation preview

Page 1: Rollback: The Impossible Dream

RollbackThe Impossible Dream

by James Turnbull

jamtur01 @ githubkartar @ twitter

jamesturnbull on freenodejames @ puppetlabs.com

Page 2: Rollback: The Impossible Dream

About Me

VP Technical Operations at Puppet Labs

Puppet guy

Ruby guy

Talks funny

Page 3: Rollback: The Impossible Dream

A show of hands

Page 4: Rollback: The Impossible Dream

Who thinks they know what rollback

is?

Page 5: Rollback: The Impossible Dream

Last set of hands

Page 6: Rollback: The Impossible Dream

YMMV

Page 7: Rollback: The Impossible Dream

Definitions

Page 8: Rollback: The Impossible Dream

Traditional

Page 9: Rollback: The Impossible Dream

Modern

Page 10: Rollback: The Impossible Dream

Fact or Fiction?

Page 11: Rollback: The Impossible Dream

Accept certain constraints

Page 12: Rollback: The Impossible Dream

Constraint #1Apply sufficient

capital

Page 13: Rollback: The Impossible Dream

Constraint #2Idempotent

Page 14: Rollback: The Impossible Dream

Constraint #3Cascade-less

failure

Page 15: Rollback: The Impossible Dream

Constraint #4Resources

Page 16: Rollback: The Impossible Dream

A Philosophical Digression

Page 17: Rollback: The Impossible Dream

If I know where I amI don’t know how I got there

If I know how I got thereI don’t know where I am

Page 18: Rollback: The Impossible Dream

Very few “systems” are

truly deterministic

Page 19: Rollback: The Impossible Dream

A Mathematical Digression

Page 20: Rollback: The Impossible Dream

On system rollback and totalised fieldsAn algebraic approach to system change

Mark Burgess and Alva Couch20th June 2011

http://cfengine.com/markburgess/papers/totalfield.pdf

Page 21: Rollback: The Impossible Dream

So what’s wrong with rollback?

Page 22: Rollback: The Impossible Dream

Risk

Page 23: Rollback: The Impossible Dream

Learning from mistakes

Page 24: Rollback: The Impossible Dream

Complex systems are

… complex

Page 25: Rollback: The Impossible Dream

Human error

Page 26: Rollback: The Impossible Dream

What is the problem rollback is

trying to solve?

Page 27: Rollback: The Impossible Dream

What is the problem YOU are trying to solve?

Page 28: Rollback: The Impossible Dream

So how can we mitigate Rollback

shortcomings?

Page 29: Rollback: The Impossible Dream

PreventativeDesign

Page 30: Rollback: The Impossible Dream

Rollback is (often) an architecture

problem

Page 31: Rollback: The Impossible Dream

Increase Resilience

Page 32: Rollback: The Impossible Dream

Operational Intelligence

Page 33: Rollback: The Impossible Dream

A little bit of DevOps in every byte…

Page 34: Rollback: The Impossible Dream

Small, iterative changes

Page 35: Rollback: The Impossible Dream

Accept that failure happens

Page 36: Rollback: The Impossible Dream

“We can’t test that? Okay we can

roll it back if it breaks…”

Page 37: Rollback: The Impossible Dream

Assumption is the mother of all fuckups*

Page 38: Rollback: The Impossible Dream

“But the system can’t be {run|upgraded|deployed} like that

because…”

Page 39: Rollback: The Impossible Dream

Conclusions

Page 40: Rollback: The Impossible Dream

Rollback is possible but not probable

Page 41: Rollback: The Impossible Dream

If you have to have “rollback” accept

constraints

Page 42: Rollback: The Impossible Dream

You can mitigate the need for it

Page 43: Rollback: The Impossible Dream

Thank you!

Questions/Insults?

jamtur01 @ githubkartar @ twitter

jamesturnbull on freenodejames @ puppetlabs.com