Transcript
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


Top Related