Dev Ops, Ruby, Rails,                             and Envato                   A team of 8 deploy heaps of times a day to ...
John Barton                          @johnbarton                         john@envato.comThursday, 30 June 2011
Envato?                         http://envato.comThursday, 30 June 2011
Stock Marketplaces                                  &                          Tutorial NetworkThursday, 30 June 2011
MarketplacesThursday, 30 June 2011
Like iStockPhoto but for                           other creative niches                                    or            ...
Tuts+ NetworkThursday, 30 June 2011
Big Blog Network for                   education in creative fieldsThursday, 30 June 2011
The MarketplaceThursday, 30 June 2011
August 2006Thursday, 30 June 2011
One MarketplaceThursday, 30 June 2011
FlashDenThursday, 30 June 2011
Rails 0.13b                         No Users                         No TrafficThursday, 30 June 2011
June 2011Thursday, 30 June 2011
9 MarketplacesThursday, 30 June 2011
ActiveDen (nee FlashDen)                                AudioJungle                               ThemeForest             ...
Rails 2.3.11                        830,462 Users                 22 Million Requests WeeklyThursday, 30 June 2011
One Codebase and One                         Production EnvironmentThursday, 30 June 2011
What’s interesting about                           our deployments?Thursday, 30 June 2011
deploy frequently, high                           scale, no ops teamThursday, 30 June 2011
What do you need to do                               the same?Thursday, 30 June 2011
Some technical                         infrastructure, some                           business/culturalThursday, 30 June 2...
Cultural BitsThursday, 30 June 2011
The “Dev Ops” CultureThursday, 30 June 2011
“Culture of respect &                  trust, good attitude toward                            failure...”                 ...
“How about "culture of                           stop fucking up"?”                 Ted Dzubia                http://teddz...
A problem of competing                                prioritiesThursday, 30 June 2011
Our Solution:                         Don’t have OpsThursday, 30 June 2011
Outsource commodity                           platform bits:                     virtualisation/cloud, have               ...
Ensure the dev team has                the skills to take care of the                              restThursday, 30 June 2...
Take advantage of an                           individuals talents, but                            don’t rely upon them   ...
OK to have specialists... for                        special work.                         Keeping the app running        ...
Within the BusinessThursday, 30 June 2011
Preserve The “Golden Age”Thursday, 30 June 2011
Thursday, 30 June 2011
3 Developers                     30 minute feedback cycle                     deploy, discuss on forums,                  ...
Keep doing everything good                 about the the startup days                   for as long as we canThursday, 30 ...
Avoid Corporate                           AntipatternsThursday, 30 June 2011
We’ve all been doing dev                      long enough to see this                     stuff screwed up over and       ...
Decision 3:                         Don’t do all that stuffThursday, 30 June 2011
Ultimate ResponsibilityThursday, 30 June 2011
"The fault, dear Brutus, is not in our     QA or Ops,  But in ourselves."Thursday, 30 June 2011
Test Driven Development                                vs.                             QA TeamThursday, 30 June 2011
Test Driven Infrastructure                                vs.                             Ops TeamThursday, 30 June 2011
Both as a team and as                         individuals we own our                         work from when we are        ...
... until is is demonstrably                    error free and performant                             in productionThursda...
Everyone is in the (paid) on                        call rosterThursday, 30 June 2011
Everyone takes a turn at                   Level 2 Customer SupportThursday, 30 June 2011
Want those jobs to be                                easier?                            Stop fucking up.Thursday, 30 June ...
ProcessThursday, 30 June 2011
LEAN / TPS Principles                         ...without the processThursday, 30 June 2011
Thursday, 30 June 2011
You cannot write code any                   faster than you can deploy                         it to productionThursday, 3...
Long running projects?Thursday, 30 June 2011
A. B. C.                         Always Be Cmerging                           (the c is silent)Thursday, 30 June 2011
I would not want to try this                  with Subversion, or Visual                  Source Safe... and I never      ...
Use GIT                         http://git-scm.com/Thursday, 30 June 2011
Dark Launch                         Feature Flags                         Private BetaThursday, 30 June 2011
User CommunityThursday, 30 June 2011
We do trip up running this                              fastThursday, 30 June 2011
But through years of                    openness with our users                   via our forums and owning               ...
... we’ve ended up with a                          (relatively) sympathetic                                 communityThurs...
Time Zones both help and                            hurtThursday, 30 June 2011
Traffic peaks during US day                    means that if things go                  wrong we’re usually asleepThursday,...
But it makes it very easy to                 deploy during our business                           hoursThursday, 30 June 2...
Open SourceThursday, 30 June 2011
No point you solving the                         same problem as the guy                            down the streetThursda...
No point the guy down the                   street solving the same                 problem you did last weekThursday, 30 ...
TechnologyThursday, 30 June 2011
Commodity Hosting is a                             prerequisiteThursday, 30 June 2011
Notice I’m not saying                         “Cloud Computing”Thursday, 30 June 2011
Thursday, 30 June 2011
Thursday, 30 June 2011
You cant  trust “the  cloud” but    you can  trust “the   cloud to    be “the    cloud”.Thursday, 30 June 2011
Make a conservative                         platform choice so we                         don’t have to sweat the         ...
I guess you guys have to                           choose like Windows                          Ultimate 2009 Edition?Thur...
Seriously though, Ruby guys                  love shiny new things, and                   we’re spoiled for choice        ...
So we make an effort to                    keep the stack as Vanilla as                             possibleThursday, 30 J...
Virtualised servers in our                               own sandbox.                         Cloud Flexibility - Cloud   ...
Automate Configuration                             ManagementThursday, 30 June 2011
Babushka                         http://babushka.me/Thursday, 30 June 2011
Test drive your                          architecture...Thursday, 30 June 2011
...or borrow “deps” built by                         other peopleThursday, 30 June 2011
Lets look at some codeThursday, 30 June 2011
Babushka is designed to be                     run manually on the                       remote machineThursday, 30 June 2...
Use Dollhouse                     https://github.com/geelen/                              dollhouse                To driv...
moar codeThursday, 30 June 2011
A lot of people I take                           seriously, take Chef                                seriously.           ...
Automate DeploymentThursday, 30 June 2011
Capistrano                          https://github.com/                         capistrano/capistranoThursday, 30 June 2011
Codes?Thursday, 30 June 2011
The un-sung heroThursday, 30 June 2011
rake db:migrateThursday, 30 June 2011
I’m so used to having it I                 can’t even remember how I                   ever deployed database             ...
Performance & ScalingThursday, 30 June 2011
Not as big a deal as                          everyone thinksThursday, 30 June 2011
.NET runtime is faster... but                 it’s really not that big a dealThursday, 30 June 2011
Shared-nothing load                  balanced app servers + out                  of request queue workers                 ...
Measure, deploy, measure                         again and then tweak or                                 rollback         ...
There is no code faster                             than no code.Thursday, 30 June 2011
Why I’m happier than I was                  as a .NET programmerThursday, 30 June 2011
Mainly because of                         System.Threading.TimerThursday, 30 June 2011
No Viewstate                         (Yes I heard you’ve got                           MVC now instead)Thursday, 30 June 2...
A culture of people who fix                things instead of waiting for                      them to be fixedThursday, 30 J...
People who care about                  expressiveness of code and                       finding the right                  ...
Question?Thursday, 30 June 2011
Upcoming SlideShare
Loading in...5
×

Envato Dev Ops - Alt.Net Melbourne

2,376

Published on

Reworked my Dev Ops presentation for the

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,376
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
25
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Envato Dev Ops - Alt.Net Melbourne

  1. 1. Dev Ops, Ruby, Rails, and Envato A team of 8 deploy heaps of times a day to a Ruby on Rails app that has scaled up to around 20 million requests a week without an ops team. lolwut?Thursday, 30 June 2011
  2. 2. John Barton @johnbarton john@envato.comThursday, 30 June 2011
  3. 3. Envato? http://envato.comThursday, 30 June 2011
  4. 4. Stock Marketplaces & Tutorial NetworkThursday, 30 June 2011
  5. 5. MarketplacesThursday, 30 June 2011
  6. 6. Like iStockPhoto but for other creative niches or eBay for digital goodsThursday, 30 June 2011
  7. 7. Tuts+ NetworkThursday, 30 June 2011
  8. 8. Big Blog Network for education in creative fieldsThursday, 30 June 2011
  9. 9. The MarketplaceThursday, 30 June 2011
  10. 10. August 2006Thursday, 30 June 2011
  11. 11. One MarketplaceThursday, 30 June 2011
  12. 12. FlashDenThursday, 30 June 2011
  13. 13. Rails 0.13b No Users No TrafficThursday, 30 June 2011
  14. 14. June 2011Thursday, 30 June 2011
  15. 15. 9 MarketplacesThursday, 30 June 2011
  16. 16. ActiveDen (nee FlashDen) AudioJungle ThemeForest VideoHive GraphicRiver CodeCanyon 3D Ocean Tuts+ Marketplace PhotoDuneThursday, 30 June 2011
  17. 17. Rails 2.3.11 830,462 Users 22 Million Requests WeeklyThursday, 30 June 2011
  18. 18. One Codebase and One Production EnvironmentThursday, 30 June 2011
  19. 19. What’s interesting about our deployments?Thursday, 30 June 2011
  20. 20. deploy frequently, high scale, no ops teamThursday, 30 June 2011
  21. 21. What do you need to do the same?Thursday, 30 June 2011
  22. 22. Some technical infrastructure, some business/culturalThursday, 30 June 2011
  23. 23. Cultural BitsThursday, 30 June 2011
  24. 24. The “Dev Ops” CultureThursday, 30 June 2011
  25. 25. “Culture of respect & trust, good attitude toward failure...” Ted DzubiaThursday, 30 June 2011
  26. 26. “How about "culture of stop fucking up"?” Ted Dzubia http://teddziuba.com/2011/03/devops-scam.htmlThursday, 30 June 2011
  27. 27. A problem of competing prioritiesThursday, 30 June 2011
  28. 28. Our Solution: Don’t have OpsThursday, 30 June 2011
  29. 29. Outsource commodity platform bits: virtualisation/cloud, have rackspace take care of db/ mailserverThursday, 30 June 2011
  30. 30. Ensure the dev team has the skills to take care of the restThursday, 30 June 2011
  31. 31. Take advantage of an individuals talents, but don’t rely upon them ie. don’t accidentally create an ops guyThursday, 30 June 2011
  32. 32. OK to have specialists... for special work. Keeping the app running isn’t “special”Thursday, 30 June 2011
  33. 33. Within the BusinessThursday, 30 June 2011
  34. 34. Preserve The “Golden Age”Thursday, 30 June 2011
  35. 35. Thursday, 30 June 2011
  36. 36. 3 Developers 30 minute feedback cycle deploy, discuss on forums, deploy againThursday, 30 June 2011
  37. 37. Keep doing everything good about the the startup days for as long as we canThursday, 30 June 2011
  38. 38. Avoid Corporate AntipatternsThursday, 30 June 2011
  39. 39. We’ve all been doing dev long enough to see this stuff screwed up over and over againThursday, 30 June 2011
  40. 40. Decision 3: Don’t do all that stuffThursday, 30 June 2011
  41. 41. Ultimate ResponsibilityThursday, 30 June 2011
  42. 42. "The fault, dear Brutus, is not in our QA or Ops, But in ourselves."Thursday, 30 June 2011
  43. 43. Test Driven Development vs. QA TeamThursday, 30 June 2011
  44. 44. Test Driven Infrastructure vs. Ops TeamThursday, 30 June 2011
  45. 45. Both as a team and as individuals we own our work from when we are asked to do it...Thursday, 30 June 2011
  46. 46. ... until is is demonstrably error free and performant in productionThursday, 30 June 2011
  47. 47. Everyone is in the (paid) on call rosterThursday, 30 June 2011
  48. 48. Everyone takes a turn at Level 2 Customer SupportThursday, 30 June 2011
  49. 49. Want those jobs to be easier? Stop fucking up.Thursday, 30 June 2011
  50. 50. ProcessThursday, 30 June 2011
  51. 51. LEAN / TPS Principles ...without the processThursday, 30 June 2011
  52. 52. Thursday, 30 June 2011
  53. 53. You cannot write code any faster than you can deploy it to productionThursday, 30 June 2011
  54. 54. Long running projects?Thursday, 30 June 2011
  55. 55. A. B. C. Always Be Cmerging (the c is silent)Thursday, 30 June 2011
  56. 56. I would not want to try this with Subversion, or Visual Source Safe... and I never had enough money to try “Team Foundation Server”Thursday, 30 June 2011
  57. 57. Use GIT http://git-scm.com/Thursday, 30 June 2011
  58. 58. Dark Launch Feature Flags Private BetaThursday, 30 June 2011
  59. 59. User CommunityThursday, 30 June 2011
  60. 60. We do trip up running this fastThursday, 30 June 2011
  61. 61. But through years of openness with our users via our forums and owning up to our mistakesThursday, 30 June 2011
  62. 62. ... we’ve ended up with a (relatively) sympathetic communityThursday, 30 June 2011
  63. 63. Time Zones both help and hurtThursday, 30 June 2011
  64. 64. Traffic peaks during US day means that if things go wrong we’re usually asleepThursday, 30 June 2011
  65. 65. But it makes it very easy to deploy during our business hoursThursday, 30 June 2011
  66. 66. Open SourceThursday, 30 June 2011
  67. 67. No point you solving the same problem as the guy down the streetThursday, 30 June 2011
  68. 68. No point the guy down the street solving the same problem you did last weekThursday, 30 June 2011
  69. 69. TechnologyThursday, 30 June 2011
  70. 70. Commodity Hosting is a prerequisiteThursday, 30 June 2011
  71. 71. Notice I’m not saying “Cloud Computing”Thursday, 30 June 2011
  72. 72. Thursday, 30 June 2011
  73. 73. Thursday, 30 June 2011
  74. 74. You cant trust “the cloud” but you can trust “the cloud to be “the cloud”.Thursday, 30 June 2011
  75. 75. Make a conservative platform choice so we don’t have to sweat the details ie. Ubuntu 10.4 LTSThursday, 30 June 2011
  76. 76. I guess you guys have to choose like Windows Ultimate 2009 Edition?Thursday, 30 June 2011
  77. 77. Seriously though, Ruby guys love shiny new things, and we’re spoiled for choice _even_ when it harms us.Thursday, 30 June 2011
  78. 78. So we make an effort to keep the stack as Vanilla as possibleThursday, 30 June 2011
  79. 79. Virtualised servers in our own sandbox. Cloud Flexibility - Cloud Shit-ness = WINThursday, 30 June 2011
  80. 80. Automate Configuration ManagementThursday, 30 June 2011
  81. 81. Babushka http://babushka.me/Thursday, 30 June 2011
  82. 82. Test drive your architecture...Thursday, 30 June 2011
  83. 83. ...or borrow “deps” built by other peopleThursday, 30 June 2011
  84. 84. Lets look at some codeThursday, 30 June 2011
  85. 85. Babushka is designed to be run manually on the remote machineThursday, 30 June 2011
  86. 86. Use Dollhouse https://github.com/geelen/ dollhouse To drive babushka remotelyThursday, 30 June 2011
  87. 87. moar codeThursday, 30 June 2011
  88. 88. A lot of people I take seriously, take Chef seriously. http://wiki.opscode.com/Thursday, 30 June 2011
  89. 89. Automate DeploymentThursday, 30 June 2011
  90. 90. Capistrano https://github.com/ capistrano/capistranoThursday, 30 June 2011
  91. 91. Codes?Thursday, 30 June 2011
  92. 92. The un-sung heroThursday, 30 June 2011
  93. 93. rake db:migrateThursday, 30 June 2011
  94. 94. I’m so used to having it I can’t even remember how I ever deployed database changes in the pastThursday, 30 June 2011
  95. 95. Performance & ScalingThursday, 30 June 2011
  96. 96. Not as big a deal as everyone thinksThursday, 30 June 2011
  97. 97. .NET runtime is faster... but it’s really not that big a dealThursday, 30 June 2011
  98. 98. Shared-nothing load balanced app servers + out of request queue workers not rocket surgeryThursday, 30 June 2011
  99. 99. Measure, deploy, measure again and then tweak or rollback New Relic FTWThursday, 30 June 2011
  100. 100. There is no code faster than no code.Thursday, 30 June 2011
  101. 101. Why I’m happier than I was as a .NET programmerThursday, 30 June 2011
  102. 102. Mainly because of System.Threading.TimerThursday, 30 June 2011
  103. 103. No Viewstate (Yes I heard you’ve got MVC now instead)Thursday, 30 June 2011
  104. 104. A culture of people who fix things instead of waiting for them to be fixedThursday, 30 June 2011
  105. 105. People who care about expressiveness of code and finding the right abstractionsThursday, 30 June 2011
  106. 106. Question?Thursday, 30 June 2011
  1. A particular slide catching your eye?

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

×