Put a Button on It: Removing Barriers to Going Fast

  • 26,652 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • find the code here: http://github.com/etsy/deployinator
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
26,652
On Slideshare
0
From Embeds
0
Number of Embeds
19

Actions

Shares
Downloads
121
Comments
1
Likes
41

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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