Put a Button on itRemoving Barriers to Going Fast    kastner@gmail.com / @kastner  jgoulah@gmail.com / @johngoulah
1+ Billion Pageviews      Per Month
Speed
~80 Engineers
Barriers
Deployinator
We’re Hiringhttp://etsy.com/jobs
Optimization
Happiness
Sad Engineersare Bad Engineers
Barriers
Process
“Process is an embeddedreaction to prior stupidity”                  – Clay Shirky
Fear
Correctness
"My strategy has always been: be wrong as                    Textfast as we can, Which basically means, weregonna screw up...
Legacy
How?
Communication
Trust
Openness
Constant Improvement
Then vs. Now
2009
2009   2011
2009Single Deploy   Master
2009            2011Single Deploy   Anyone Can   Master         Deploy
2009Rollback in   Fear
2009           2011Rollback in   Roll Forward   Fear        to Victory
2009All DayDeploys
2009       2011All Day   Deploy AllDeploys     Day
How… for reals
So, what does Etsy  optimize for?
MTTR vs. MTBF
Default to Open
Culture First
If it’s your first day atEtsy, you must deploy!
Doing the dumbest thing that can possibly work
Committing to Trunk
Branching in Code
if ($cfg["new_search"]) {  // new hotness  $resp = search_solr();} else {  // old busted  $resp = search_grep();}
Configuration is Code
$cfg["new_search"] = true;
BlamelessPost-mortems
Databases are Different
Does it Work?
6 Change-relatedincidents in 2010
November code-freeze
November code-freeze    721 Deploys
Deployinator
Capistrano
Capistrano  Puppet
Capistrano  Puppet  Fabric
Capistrano  Puppet  Fabric   Chef
“Framework”
STACK=search rake new_stack
run_cmd %Q{cap deploy}
log_and_stream "Starting Web deploy<br>"
log_and_shout({   :old_build => old_build, :build => build,   :send_email => true  })
Communication
Dashboard Driven  Development
5:27 < devbot> PRODUCTION deployed by vthommeret version:7f08b7a-20110722-191739-UTC took: 131.042598 secondsdiff: http://d...
e ntial     Co   nf idEtsy
Deployinator           Deploy HostWeb 1                  Web 2                 Web N
Deployinator                       ssh     Deploy HostWeb 1                  Web 2                 Web N
Deployinator                       ssh     Deploy Host                                 dshWeb 1                  Web 2    ...
Deployinator                       ssh     Deploy Host                                 dshWeb 1                  Web 2    ...
Deployinator                        ssh     Deploy Host                                  dsh        RsyncWeb 1            ...
What’s Stopping You?
Know what you’re  optimizing for
Deployinator is Open Source Software!
Deployinator is Open   Source Software!http://github.com/etsy/deployinator
Deployinator is Open   Source Software!http://github.com/etsy/deployinator         (right after this talk)
Thank you
Thank youhttp://github.com/etsy/deployinator
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
Upcoming SlideShare
Loading in...5
×

Put a Button on It: Removing Barriers to Going Fast

27,991

Published on

Published in: Technology
1 Comment
41 Likes
Statistics
Notes
  • find the code here: http://github.com/etsy/deployinator
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
27,991
On Slideshare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
122
Comments
1
Likes
41
Embeds 0
No embeds

No notes for slide

Put a Button on It: Removing Barriers to Going Fast

  1. 1. Put a Button on itRemoving Barriers to Going Fast kastner@gmail.com / @kastner jgoulah@gmail.com / @johngoulah
  2. 2. 1+ Billion Pageviews Per Month
  3. 3. Speed
  4. 4. ~80 Engineers
  5. 5. Barriers
  6. 6. Deployinator
  7. 7. We’re Hiringhttp://etsy.com/jobs
  8. 8. Optimization
  9. 9. Happiness
  10. 10. Sad Engineersare Bad Engineers
  11. 11. Barriers
  12. 12. Process
  13. 13. “Process is an embeddedreaction to prior stupidity” – Clay Shirky
  14. 14. Fear
  15. 15. Correctness
  16. 16. "My strategy has always been: be wrong as Textfast as we can, Which basically means, weregonna screw up, … Lets not be afraid of that." – Andrew Stanton
  17. 17. Legacy
  18. 18. How?
  19. 19. Communication
  20. 20. Trust
  21. 21. Openness
  22. 22. Constant Improvement
  23. 23. Then vs. Now
  24. 24. 2009
  25. 25. 2009 2011
  26. 26. 2009Single Deploy Master
  27. 27. 2009 2011Single Deploy Anyone Can Master Deploy
  28. 28. 2009Rollback in Fear
  29. 29. 2009 2011Rollback in Roll Forward Fear to Victory
  30. 30. 2009All DayDeploys
  31. 31. 2009 2011All Day Deploy AllDeploys Day
  32. 32. How… for reals
  33. 33. So, what does Etsy optimize for?
  34. 34. MTTR vs. MTBF
  35. 35. Default to Open
  36. 36. Culture First
  37. 37. If it’s your first day atEtsy, you must deploy!
  38. 38. Doing the dumbest thing that can possibly work
  39. 39. Committing to Trunk
  40. 40. Branching in Code
  41. 41. if ($cfg["new_search"]) { // new hotness $resp = search_solr();} else { // old busted $resp = search_grep();}
  42. 42. Configuration is Code
  43. 43. $cfg["new_search"] = true;
  44. 44. BlamelessPost-mortems
  45. 45. Databases are Different
  46. 46. Does it Work?
  47. 47. 6 Change-relatedincidents in 2010
  48. 48. November code-freeze
  49. 49. November code-freeze 721 Deploys
  50. 50. Deployinator
  51. 51. Capistrano
  52. 52. Capistrano Puppet
  53. 53. Capistrano Puppet Fabric
  54. 54. Capistrano Puppet Fabric Chef
  55. 55. “Framework”
  56. 56. STACK=search rake new_stack
  57. 57. run_cmd %Q{cap deploy}
  58. 58. log_and_stream "Starting Web deploy<br>"
  59. 59. log_and_shout({ :old_build => old_build, :build => build, :send_email => true })
  60. 60. Communication
  61. 61. Dashboard Driven Development
  62. 62. 5:27 < devbot> PRODUCTION deployed by vthommeret version:7f08b7a-20110722-191739-UTC took: 131.042598 secondsdiff: http://deployinator.etsycorp.com/diff/web/0cbf2f0/7f08b7a
  63. 63. e ntial Co nf idEtsy
  64. 64. Deployinator Deploy HostWeb 1 Web 2 Web N
  65. 65. Deployinator ssh Deploy HostWeb 1 Web 2 Web N
  66. 66. Deployinator ssh Deploy Host dshWeb 1 Web 2 Web N
  67. 67. Deployinator ssh Deploy Host dshWeb 1 Web 2 Web N
  68. 68. Deployinator ssh Deploy Host dsh RsyncWeb 1 Web 2 Web N
  69. 69. What’s Stopping You?
  70. 70. Know what you’re optimizing for
  71. 71. Deployinator is Open Source Software!
  72. 72. Deployinator is Open Source Software!http://github.com/etsy/deployinator
  73. 73. Deployinator is Open Source Software!http://github.com/etsy/deployinator (right after this talk)
  74. 74. Thank you
  75. 75. Thank youhttp://github.com/etsy/deployinator
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×