remediation patterns

25
© 2012 ThoughtWorks, Inc. Remediation Patterns October 12, 2011, GOTO Amsterdam Jez Humble, ThoughtWorks Studios @jezhumble #continuousdelivery http://continuousdelivery.com /

Upload: jez-humble

Post on 08-May-2015

3.446 views

Category:

Technology


1 download

DESCRIPTION

There's a recording of this presentation from QCon London 2011: http://www.infoq.com/presentations/Remediation-Patterns

TRANSCRIPT

Page 1: Remediation patterns

© 2012 ThoughtWorks, Inc.

Remediation PatternsOctober 12, 2011, GOTO Amsterdam

Jez Humble, ThoughtWorks Studios@jezhumble #continuousdeliveryhttp://continuousdelivery.com/

Page 3: Remediation patterns

prevention

patterns for low-risk release

patterns for incremental delivery

strategies for remediation

Page 4: Remediation patterns

1oz of prevention

Diagram invented by Brian Marick

Page 5: Remediation patterns

deployment pipeline

Delivery team Version control Build & unit tests

Automated acceptance tests

User acceptance tests

Release

Check in

Feedback

Trigger

Check in

Feedback

Trigger

Trigger

Check inTrigger

Trigger

ApprovalApproval

Feedback

Feedback

FeedbackFeedback

Page 6: Remediation patterns

testing on production environments

creating maintainable acceptance tests

testing cross-functional requirements

the hard bits

Page 7: Remediation patterns

optimize for resilience

automate provisioning and deployment

devs, testers and ops collaborate throughout

reducing release risk

Page 8: Remediation patterns

optimize for TTR

Thanks to John Allspaw: http://slideshare.net/jallspaw/

MTBF

http://www.flickr.com/photos/chuecy/2629242132/

MTTR

Page 9: Remediation patterns

infrastructure as code

Destroy works of art

Page 10: Remediation patterns

low risk releases are incremental

STATIC CONTENT

/static/1.1

/static/1.0

DEPENDENT SERVICE

1.0 1.1

Abstraction layer Abstraction layer

APPLICATION

Database

Router /Load balancer

Interwebs

Page 11: Remediation patterns

canary releasing

Diagram by Martin Fowler

Page 12: Remediation patterns

canary releasing

Diagram by Martin Fowler

Page 13: Remediation patterns

reduce risk of release

A/B testing

performance testing

canary releasing

Page 14: Remediation patterns

immune system

what if someone replaced your “buy” button with spacer.gif?

T cells http://www.flickr.com/photos/gehealthcare/3326186490/

Page 15: Remediation patterns

Business metrics - revenue, # orders, # users

Ops metrics - changes, incidents, TTD, TTR, TBF

Technical metrics - TPS, response time, hits

monitoring

http://www.flickr.com/photos/wwarby/3296379139/

Page 16: Remediation patterns

analyzing root causes

collaboration

data

the hard bits

Page 17: Remediation patterns

incremental delivery

John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr

Page 18: Remediation patterns

develop on mainline

feature toggles and branch by abstraction

dark launching

incremental delivery

Page 19: Remediation patterns

feature toggles

[featureToggles]wobblyFoobars: trueflightyForkHandles: false

Config File

<toggle name=wobblyFoobars> ... various UI elements</toggle>

some.jsp

forkHandle = (featureConfig.isOn(‘flightlyForkHandles)) ? new FlightyForkHander(aCandle) : new ForkHandler(aCandle)

other.java

Stolen from Martin Fowler http://martinfowler.com/bliki/FeatureToggle.html

Page 20: Remediation patterns

branch by abstraction

Component A

Component B

Seam

Component A

Page 21: Remediation patterns

branch by abstraction

Component AComponent A

Abstraction layer

Component B Component B’

Page 22: Remediation patterns

dark launching

Diagram by Martin Fowler

Page 23: Remediation patterns

dark launching

Diagram by Martin Fowler

Page 24: Remediation patterns

How long would it take you to release a change to a single line of code?

Ops metrics - changes, incidents, TTD, TTR, TBF

If your data center blew up, how long would you take to restore service?

measuring e#ectiveness

Page 25: Remediation patterns

http://thoughtworks-studios.com/

[email protected]://continuousdelivery.com/

@jezhumble #continuousdelivery

© 2012 ThoughtWorks, Inc.