Continuous deployment

29
Continuous Deployment [email protected] , @kellan, VP of Engineering Thursday, March 17, 2011

description

A 20 minute talk I gave as part of the "Code as Craft: Moving Fast at Scale" Etsy micro-conference

Transcript of Continuous deployment

Page 1: Continuous deployment

Continuous [email protected], @kellan,VP of Engineering

Thursday, March 17, 2011

Page 2: Continuous deployment

What? => Why? => How?

Thursday, March 17, 2011

Page 3: Continuous deployment

What is it?

Thursday, March 17, 2011

Page 4: Continuous deployment

Small, frequent changes. To production.

Thursday, March 17, 2011

Page 5: Continuous deployment

Small, frequent changes. To production.

Small Frequent

Thursday, March 17, 2011

Page 6: Continuous deployment

A collection of techniques

to avoid SUCKING.

Thursday, March 17, 2011

Page 7: Continuous deployment

Why do we do it?

Thursday, March 17, 2011

Page 8: Continuous deployment

Agility: Always Be Shipping

Thursday, March 17, 2011

Page 9: Continuous deployment

MTTD / MTTR

Thursday, March 17, 2011

Page 10: Continuous deployment

4 change related “incidents” in 2010

Thursday, March 17, 2011

Page 11: Continuous deployment

Deep Water Horizon

time to detect: <15 minutes

time to resolve: ~216,000 minutes

Thursday, March 17, 2011

Page 12: Continuous deployment

MMTR: 4.5 minutes

MTTD: <5 minutes

mean time to detect: < 5 minutes

mean time to resolve:4.5 minutes

Thursday, March 17, 2011

Page 13: Continuous deployment

Encourages Experimentation

Thursday, March 17, 2011

Page 14: Continuous deployment

1%Thursday, March 17, 2011

Page 15: Continuous deployment

Optimize for Developer Happiness

Thursday, March 17, 2011

Page 16: Continuous deployment

DevOps

Thursday, March 17, 2011

Page 17: Continuous deployment

Scales Trust and Risk

Thursday, March 17, 2011

Page 18: Continuous deployment

How do we do it?

Thursday, March 17, 2011

Page 19: Continuous deployment

Work in trunk,branch in code.

Thursday, March 17, 2011

Page 20: Continuous deployment

“All existing revision control systems were built by people who build installed software”

- Paul Hammond, Always Ship Trunk, Velocity 2010

Thursday, March 17, 2011

Page 21: Continuous deployment

if ($cfg[‘awesome_new_search’]) {

# new hotness

$rsp = do_solr();

} else {

# boring old stuff

$rsp = do_grep();

}

config flags

Thursday, March 17, 2011

Page 22: Continuous deployment

one install, multiple versions.

Thursday, March 17, 2011

Page 23: Continuous deployment

Keep it simple.

Thursday, March 17, 2011

Page 24: Continuous deployment

One button deploy

Thursday, March 17, 2011

Page 25: Continuous deployment

Operability Review

Thursday, March 17, 2011

Page 26: Continuous deployment

Communication

Thursday, March 17, 2011

Page 27: Continuous deployment

Graph Everything!

Thursday, March 17, 2011

Page 28: Continuous deployment

FAQ:Schemas? Testing and continuous integration?QA?

Thursday, March 17, 2011

Page 29: Continuous deployment

/trunk/, config flags, 1B deploy, what could go wrong?, IRC, graphs

Thursday, March 17, 2011