Removing Barriers to Going Fast

87
[email protected] / @kastner [email protected] / @johngoulah Put a Button on it Removing Barriers to Going Fast Thursday, March 8, 2012

description

 

Transcript of Removing Barriers to Going Fast

Page 1: Removing Barriers to Going Fast

[email protected] / @[email protected] / @johngoulah

Put a Button on itRemoving Barriers to Going Fast

Thursday, March 8, 2012

Page 2: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 3: Removing Barriers to Going Fast

1+ Billion Pageviews Per Month

Thursday, March 8, 2012

Page 4: Removing Barriers to Going Fast

Speed

Thursday, March 8, 2012

Page 5: Removing Barriers to Going Fast

~100 Engineers

Thursday, March 8, 2012

Page 6: Removing Barriers to Going Fast

Barriers

Thursday, March 8, 2012

Page 7: Removing Barriers to Going Fast

etsy.github.com

Thursday, March 8, 2012

Page 8: Removing Barriers to Going Fast

We’re Hiringetsy.com/jobs

Thursday, March 8, 2012

Page 9: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 10: Removing Barriers to Going Fast

Optimization

Thursday, March 8, 2012

Page 11: Removing Barriers to Going Fast

Happiness

Thursday, March 8, 2012

Page 12: Removing Barriers to Going Fast

Sad Engineers are Bad Engineers

Thursday, March 8, 2012

Page 13: Removing Barriers to Going Fast

Barriers

Thursday, March 8, 2012

Page 14: Removing Barriers to Going Fast

Process

Thursday, March 8, 2012

Page 15: Removing Barriers to Going Fast

“Process is an embedded reaction to prior stupidity”

– Clay ShirkyThursday, March 8, 2012

Page 16: Removing Barriers to Going Fast

Fear

Thursday, March 8, 2012

Page 17: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 18: Removing Barriers to Going Fast

Correctness

Thursday, March 8, 2012

Page 19: Removing Barriers to Going Fast

Text"My strategy has always been: be wrong as

fast as we can, Which basically means, we're gonna screw up, … Let's not be afraid of that."

– Andrew StantonThursday, March 8, 2012

Page 20: Removing Barriers to Going Fast

Legacy

Thursday, March 8, 2012

Page 21: Removing Barriers to Going Fast

How?

Thursday, March 8, 2012

Page 22: Removing Barriers to Going Fast

Communication

Thursday, March 8, 2012

Page 23: Removing Barriers to Going Fast

Trust

Thursday, March 8, 2012

Page 24: Removing Barriers to Going Fast

Openness

Thursday, March 8, 2012

Page 25: Removing Barriers to Going Fast

Constant Improvement

Thursday, March 8, 2012

Page 26: Removing Barriers to Going Fast

Then vs. Now

Thursday, March 8, 2012

Page 27: Removing Barriers to Going Fast

2009

Thursday, March 8, 2012

Page 28: Removing Barriers to Going Fast

2009 2011

Thursday, March 8, 2012

Page 29: Removing Barriers to Going Fast

2009

Single Deploy

Master

Thursday, March 8, 2012

Page 30: Removing Barriers to Going Fast

2009 2011

Single Deploy

Master

Anyone Can

Deploy

Thursday, March 8, 2012

Page 31: Removing Barriers to Going Fast

2009

Rollback in

Fear

Thursday, March 8, 2012

Page 32: Removing Barriers to Going Fast

2009 2011

Rollback in

Fear

Roll Forward

to Victory

Thursday, March 8, 2012

Page 33: Removing Barriers to Going Fast

2009

All Day

Deploys

Thursday, March 8, 2012

Page 34: Removing Barriers to Going Fast

2009 2011

All Day

Deploys

Deploy All

Day

Thursday, March 8, 2012

Page 35: Removing Barriers to Going Fast

So, what does Etsy optimize for?

Thursday, March 8, 2012

Page 36: Removing Barriers to Going Fast

MTTR vs. MTBF

Thursday, March 8, 2012

Page 37: Removing Barriers to Going Fast

Default to Open

Thursday, March 8, 2012

Page 38: Removing Barriers to Going Fast

Culture First

Thursday, March 8, 2012

Page 39: Removing Barriers to Going Fast

If it’s your first day at Etsy, you must deploy!

Thursday, March 8, 2012

Page 40: Removing Barriers to Going Fast

Doing the dumbest thing that can possibly work

Thursday, March 8, 2012

Page 41: Removing Barriers to Going Fast

Committing to Trunk

Thursday, March 8, 2012

Page 42: Removing Barriers to Going Fast

Branching in Code

Thursday, March 8, 2012

Page 43: Removing Barriers to Going Fast

if ($cfg["new_search"]) {// new hotness$resp = search_solr();

} else {// old busted$resp = search_grep();

}

Thursday, March 8, 2012

Page 44: Removing Barriers to Going Fast

Configuration is Code

Thursday, March 8, 2012

Page 45: Removing Barriers to Going Fast

$cfg["new_search"] = true;

Thursday, March 8, 2012

Page 46: Removing Barriers to Going Fast

Blameless Post-mortems

Thursday, March 8, 2012

Page 47: Removing Barriers to Going Fast

Databases are Different

Thursday, March 8, 2012

Page 48: Removing Barriers to Going Fast

Does it Work?

Thursday, March 8, 2012

Page 49: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 50: Removing Barriers to Going Fast

Vertical Line Technology™

Thursday, March 8, 2012

Page 51: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 52: Removing Barriers to Going Fast

6 Change-related incidents in 2010

Thursday, March 8, 2012

Page 53: Removing Barriers to Going Fast

November code-freeze

Thursday, March 8, 2012

Page 54: Removing Barriers to Going Fast

November code-freeze

721 DeploysThursday, March 8, 2012

Page 55: Removing Barriers to Going Fast

Deployinator

Thursday, March 8, 2012

Page 56: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 57: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 58: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 59: Removing Barriers to Going Fast

Capistrano

Thursday, March 8, 2012

Page 60: Removing Barriers to Going Fast

PuppetCapistrano

Thursday, March 8, 2012

Page 61: Removing Barriers to Going Fast

FabricPuppet

Capistrano

Thursday, March 8, 2012

Page 62: Removing Barriers to Going Fast

FabricChef

PuppetCapistrano

Thursday, March 8, 2012

Page 63: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 64: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 65: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 66: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 67: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 68: Removing Barriers to Going Fast

Communication

Thursday, March 8, 2012

Page 69: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 70: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 71: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 72: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 73: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 74: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 75: Removing Barriers to Going Fast

Dashboard Driven Development

Thursday, March 8, 2012

Page 76: Removing Barriers to Going Fast

Thursday, March 8, 2012

Page 77: Removing Barriers to Going Fast

13:15 < devbot> PRODUCTION deployed by jclarke version: 4b64cae-20111026-180816-UTC took: 46.697705 seconds diff: http://deployinator/diff/web/a6de636/4b64cae

Thursday, March 8, 2012

Page 78: Removing Barriers to Going Fast

Etsy Confidential

Thursday, March 8, 2012

Page 79: Removing Barriers to Going Fast

Deployinator Deploy Host

Web 1 Web 2 Web N

Thursday, March 8, 2012

Page 80: Removing Barriers to Going Fast

Deployinator Deploy Host

Web 1 Web 2 Web N

ssh

Thursday, March 8, 2012

Page 81: Removing Barriers to Going Fast

Deployinator Deploy Host

Web 1 Web 2 Web N

ssh

dsh

Thursday, March 8, 2012

Page 82: Removing Barriers to Going Fast

Deployinator Deploy Host

Web 1 Web 2 Web N

ssh

dsh

Thursday, March 8, 2012

Page 83: Removing Barriers to Going Fast

Deployinator Deploy Host

Web 1 Web 2 Web N

ssh

dshRsync

Thursday, March 8, 2012

Page 84: Removing Barriers to Going Fast

What’s Stopping You?

Thursday, March 8, 2012

Page 85: Removing Barriers to Going Fast

Know what you’re optimizing for

Thursday, March 8, 2012

Page 86: Removing Barriers to Going Fast

Open Source Software!

Thursday, March 8, 2012

Page 87: Removing Barriers to Going Fast

Thank yougithub.com/etsy

Thursday, March 8, 2012