113
Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com [email protected] Friday, December 21, 12

Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com [email protected]

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Continuous Deployment

Sam Haskins

Velocity China 2012

[email protected]

Friday, December 21, 12

Page 2: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Friday, December 21, 12

Page 3: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

20,000,000 Members

Friday, December 21, 12

Page 4: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

800,000 Active Shops

Friday, December 21, 12

Page 5: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

17,000,000 items

Friday, December 21, 12

Page 6: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

0

150

300

450

600

2005 2006 2007 2008 2009 2010 2011

525.6

306.7

176.8

87.3

263.80.17

Millions of $

Friday, December 21, 12

Page 7: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

0

150

300

450

600

2005 2006 2007 2008 2009 2010 2011

525.6

306.7

176.8

87.3

263.80.17

Millions of $

Friday, December 21, 12

Page 8: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

(deploys/day)

Friday, December 21, 12

Page 9: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

0

150

300

450

600

2005 2006 2007 2008 2009 2010 2011

525.6

306.7

176.8

87.3

263.80.17

Millions of $

Friday, December 21, 12

Page 10: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

200 deployers

Friday, December 21, 12

Page 11: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

200 deployersEngineers?

Friday, December 21, 12

Page 12: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

200 deployersEngineers +Designers

Friday, December 21, 12

Page 13: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

200 deployersEngineers +Designers +Product

Friday, December 21, 12

Page 14: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

33 deploys/day

Friday, December 21, 12

Page 15: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

33 deploys/day(average that includes weekends)

Friday, December 21, 12

Page 16: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

33 deploys/day(average that includes weekends)

(just the web stack)

Friday, December 21, 12

Page 17: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Continuous Deployment

Friday, December 21, 12

Page 18: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Take the ceremonyout of releases

Friday, December 21, 12

Page 19: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Smaller changes,more often

Friday, December 21, 12

Page 20: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Fewer changes/deploy=

Fewer things thatcan go wrong

Friday, December 21, 12

Page 21: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Fewer changes/deploy=

Easier to see effects of your change

Friday, December 21, 12

Page 22: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Friday, December 21, 12

Page 23: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

How to implement

Friday, December 21, 12

Page 24: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

code

test

release

feedback

Friday, December 21, 12

Page 25: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

code

test

release

feedback

Friday, December 21, 12

Page 26: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// search engine

$results = Search::use_grep($_GET[‘query’]);print_r($results);

Friday, December 21, 12

Page 27: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

code

test

release

feedback

Friday, December 21, 12

Page 28: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

$ curl http://shaskins.dev.etsy.com/search.php?query=bowties

Friday, December 21, 12

Page 29: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

code

test

release

feedback

Friday, December 21, 12

Page 30: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

$ scp -r ~/code webserver.prod.etsy.com:/docroot

Friday, December 21, 12

Page 31: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

code

test

release

feedback

Friday, December 21, 12

Page 32: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

$ tail -f access_log[15/Nov/2012:17:14:41 +0000] "GET /search?query=bowties" 200 [15/Nov/2012:17:14:42 +0000] "GET /search?query=knit+hat" 200[15/Nov/2012:17:14:45 +0000] "GET /search?query=vintage+chair" 200

Friday, December 21, 12

Page 33: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Friday, December 21, 12

Page 34: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

code

test

release

feedback

Friday, December 21, 12

Page 35: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

“Always Ship Trunk”Paul Hammondhttp://www.paulhammond.org/2010/06/trunk/

Friday, December 21, 12

Page 36: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Centralized configuration file

Friday, December 21, 12

Page 37: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// Site configuration

$config[‘search’] = array( ‘enabled’ => ‘on’ ));

Friday, December 21, 12

Page 38: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// search engine

$results = Search::use_grep($_GET[‘query’]);print_r($results);

Friday, December 21, 12

Page 39: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// search engineif (!Feature::isEnabled(‘search’)) { header(‘HTTP/1.1 503 Service Unavailable’);}

$results = Search::use_grep($_GET[‘query’]);print_r($results);

Friday, December 21, 12

Page 40: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// Site configuration

$config[‘search_method’] = array( ‘grep’ => ‘100%’

));

Friday, December 21, 12

Page 41: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// Site configuration

$config[‘search_method’] = array( ‘grep’ => ‘100%’, ‘solr_service’ => ‘0%’ ));

Friday, December 21, 12

Page 42: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// search engineif (!Feature::isEnabled(‘search’)) { header(‘HTTP/1.1 503 Service Unavailable’); exit();}

$results = Search::use_grep($_GET[‘query’]);

print_r($results);Friday, December 21, 12

Page 43: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// search engineif (!Feature::isEnabled(‘search’)) { header(‘HTTP/1.1 503 Service Unavailable’); exit();}

switch (Feature::variant(‘search_method’)) { case ‘grep’: $results = Search::use_grep($_GET[‘query’]); break;

case ‘solr_service’: $results = Search::use_solr($_GET[‘query’]); break;}

print_r($results);Friday, December 21, 12

Page 44: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Lots of types of options

Friday, December 21, 12

Page 45: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// Site configuration

$config[‘new_feature’] = array( ‘enabled’ => ‘0%’, ‘admin’ => ‘on’ ));

Friday, December 21, 12

Page 46: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// Site configuration

$config[‘new_feature’] = array( ‘enabled’ => ‘0%’, ‘users’ => array( ‘test_user’, ‘big_seller’, ‘best_friend’ ) ));

Friday, December 21, 12

Page 47: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// Site configuration

$config[‘new_feature’] = array( ‘enabled’ => ‘0%’, ‘groups’ => array( 1234, 6742 ) ));

Friday, December 21, 12

Page 48: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// Site configuration

$config[‘new_feature’] = array( ‘enabled’ => array( ‘variant_1’ => ’15%’, ‘variant_2’ => ’20%’, ‘control‘ => ’65%’ ) ));

Friday, December 21, 12

Page 49: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

code

test

release

feedback

Friday, December 21, 12

Page 50: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Friday, December 21, 12

Page 51: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Development Staging Production

Friday, December 21, 12

Page 52: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Development

Friday, December 21, 12

Page 53: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

DevelopmentSeparate database

Friday, December 21, 12

Page 54: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

DevelopmentSeparate databaseSeparate network

Friday, December 21, 12

Page 55: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Staging and Production

Friday, December 21, 12

Page 56: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Staging and ProductionSame databases

Friday, December 21, 12

Page 57: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Staging and ProductionSame databasesSame caches

Friday, December 21, 12

Page 58: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Staging and ProductionSame databasesSame cachesSame services

Friday, December 21, 12

Page 59: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Staging and ProductionSame databasesSame cachesSame servicesSame hardware

Friday, December 21, 12

Page 60: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

code

test

release

feedback

Friday, December 21, 12

Page 61: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

_________ ______ _____ ___________ /_____ ________ ___ /______ _____ _____(_)_______ ______ ___ /_______ _________ __ / _ _ \___ __ \__ / _ __ \__ / / /__ / __ __ \_ __ `/_ __/_ __ \__ ___// /_/ / / __/__ /_/ /_ / / /_/ /_ /_/ / _ / _ / / // /_/ / / /_ / /_/ /_ /\__,_/ \___/ _ .___/ /_/ \____/ _\__, / /_/ /_/ /_/ \__,_/ \__/ \____/ /_/ /_/ /____/

Friday, December 21, 12

Page 62: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Friday, December 21, 12

Page 63: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Configuration-onlydeploys

Friday, December 21, 12

Page 64: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

code

test

release

feedback

Friday, December 21, 12

Page 65: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Metrics

Friday, December 21, 12

Page 66: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

MetricsHundreds of thousands of metrics

Friday, December 21, 12

Page 67: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Business Metrics

Friday, December 21, 12

Page 68: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Business MetricsNumber of sales

Friday, December 21, 12

Page 69: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Business MetricsNumber of salesDollars of revenue

Friday, December 21, 12

Page 70: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Business MetricsNumber of salesDollars of revenueSources of traffic

Friday, December 21, 12

Page 71: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Application Metrics

Friday, December 21, 12

Page 72: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Application MetricsApplication actions

Friday, December 21, 12

Page 73: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Application MetricsApplication actionsUsage patterns

Friday, December 21, 12

Page 74: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Application MetricsApplication actionsUsage patternsTimes events happen

Friday, December 21, 12

Page 75: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

System Metrics

Friday, December 21, 12

Page 76: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

System MetricsCPU usage

Friday, December 21, 12

Page 77: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

System MetricsCPU usageNetwork bandwidth

Friday, December 21, 12

Page 78: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

System MetricsCPU usageNetwork bandwidthDisk IO

Friday, December 21, 12

Page 79: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Make metricseasy to create

Friday, December 21, 12

Page 80: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// search engine

$results = Search::use_grep($_GET[‘query’]);print_r($results);

Friday, December 21, 12

Page 81: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

<?php// search engine

$results = Search::use_grep($_GET[‘query’]);print_r($results);StatsD::increment(‘search.queries’);

Friday, December 21, 12

Page 82: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Friday, December 21, 12

Page 83: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Put them into dashboards

Friday, December 21, 12

Page 84: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Logs

Friday, December 21, 12

Page 85: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Friday, December 21, 12

Page 86: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Make metrics from logs

Friday, December 21, 12

Page 87: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Big-data analytics

Friday, December 21, 12

Page 88: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Culture of trust

Friday, December 21, 12

Page 89: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Tools solve technological friction

Friday, December 21, 12

Page 90: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Culture solves organizational friction

Friday, December 21, 12

Page 91: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Get rid of barriers

Friday, December 21, 12

Page 92: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Get rid of barriers“Talk to ops to get access to the logs”

Friday, December 21, 12

Page 93: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Get rid of barriers“Talk to ops to get access to the logs”“Get approval from CTO to push code”

Friday, December 21, 12

Page 94: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Get rid of barriers“Talk to ops to get access to the logs”“Get approval from CTO to push code”“Release manager pushes the buttons”

Friday, December 21, 12

Page 95: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Take responsibility

Friday, December 21, 12

Page 96: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Something’s broken?

Friday, December 21, 12

Page 97: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Something’s broken?Ops problem?

Friday, December 21, 12

Page 98: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Something’s broken?Ops problem?Developer problem?

Friday, December 21, 12

Page 99: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Something’s broken?Ops problem?Developer problem?Product problem?

Friday, December 21, 12

Page 100: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Something’s broken?Ops problem?Developer problem?Product problem?

Friday, December 21, 12

Page 101: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Something’s broken?Ops problem?Developer problem?Product problem?Problem.

Friday, December 21, 12

Page 102: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Everyone is responsible

Friday, December 21, 12

Page 103: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Dev/Ops/ProductCollaboration

Friday, December 21, 12

Page 104: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Blameless Postmortems

Friday, December 21, 12

Page 105: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Why Etsy Loves Continuous Deployment

Friday, December 21, 12

Page 106: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Features getdeveloped faster

Friday, December 21, 12

Page 107: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Iterative Development

Friday, December 21, 12

Page 108: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Increased confidence

Friday, December 21, 12

Page 109: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Data-backed decisions

Friday, December 21, 12

Page 110: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Better communication

Friday, December 21, 12

Page 111: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Mean time to recovery

Friday, December 21, 12

Page 112: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Tools Mentioned:•Feature flag tool (not yet released, but soon!)•Jenkins (http://jenkins-ci.org)•Deployinator (https://github.com/etsy/deployinator)•StatsD (https://github.com/etsy/statsd)•Graphite (http://graphite.wikidot.com)•Ganglia (http://ganglia.sourceforge.net)•Logster (https://github.com/etsy/logster)•Supergrep (https://github.com/etsy/supergrep)•Much more at https://github.com/etsy

Friday, December 21, 12

Page 113: Sam Haskins - velocity.oreilly.com.cnvelocity.oreilly.com.cn/2012/ppts/shaskinsvelocitychina2012.pdf · Continuous Deployment Sam Haskins Velocity China 2012 Etsy.com shaskins@etsy.com

Thanks!

Friday, December 21, 12