Clouds against the Floods (RubyConfBR2011)

1,992 views
1,963 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
1,992
On SlideShare
0
From Embeds
0
Number of Embeds
756
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clouds against the Floods (RubyConfBR2011)

  1. 1. Clouds against the floods or how RoR saved the day in Australia Leonardo BorgesMonday, 7 November 2011
  2. 2. self slide • ThoughtWorker in Sydney, Australia • Programming languages enthusiast • Blogger - leonardoborges.com • Twitter blabbermouth @leonardo_borges • Seldom OSS contributor - github.com/ leonardoborgesMonday, 7 November 2011
  3. 3. self slide • ThoughtWorker in Sydney, Australia • Programming languages enthusiast • Blogger - leonardoborges.com • Twitter blabbermouth @leonardo_borges • Seldom OSS contributor - github.com/ leonardoborges ...and also • Heavy Metal guitarist • Singer • Overall adrenaline junkieMonday, 7 November 2011
  4. 4. Let’s step back for a sec...Monday, 7 November 2011
  5. 5. Heroku, an overviewMonday, 7 November 2011
  6. 6. Heroku, an overview Basic conceptsMonday, 7 November 2011
  7. 7. Heroku, an overview Basic concepts • PaaSMonday, 7 November 2011
  8. 8. Heroku, an overview Basic concepts • PaaS • Git based deployment cycleMonday, 7 November 2011
  9. 9. Heroku, an overview Basic concepts • PaaS • Git based deployment cycle • Dynos (web processes)Monday, 7 November 2011
  10. 10. Heroku, an overview Basic concepts • PaaS • Git based deployment cycle • Dynos (web processes) • Workers (background processes)Monday, 7 November 2011
  11. 11. Heroku, an overview Basic concepts • PaaS • Git based deployment cycle • Dynos (web processes) • Workers (background processes) • CronMonday, 7 November 2011
  12. 12. Simplistic view of a web request request routing dynoMonday, 7 November 2011
  13. 13. Simplistic view of a web request request routing dyno dyno dyno dyno dyno dyno dyno dyno dyno dyno dyno dyno dyno dynoMonday, 7 November 2011
  14. 14. A typical setupMonday, 7 November 2011
  15. 15. A typical setup EnvironmentsMonday, 7 November 2011
  16. 16. A typical setup Environments • staging, showcase and productionMonday, 7 November 2011
  17. 17. A typical setup Environments • staging, showcase and productionMonday, 7 November 2011
  18. 18. A typical setup Environments • staging, showcase and productionMonday, 7 November 2011
  19. 19. A typical setup Environments • staging, showcase and production Branching strategy • develop • master (tagged release candidates)Monday, 7 November 2011
  20. 20. But before you get too excited...Monday, 7 November 2011
  21. 21. Catches & restrictionsMonday, 7 November 2011
  22. 22. Catches & restrictions • Read-only file systemMonday, 7 November 2011
  23. 23. Catches & restrictions • Read-only file system • 30 seconds cap on http requestsMonday, 7 November 2011
  24. 24. Catches & restrictions • Read-only file system • 30 seconds cap on http requests • The console hijacks the web processesMonday, 7 November 2011
  25. 25. Catches & restrictions • Read-only file system • 30 seconds cap on http requests • The console hijacks the web processes • Processes limited to 300MB 512MB of RAMMonday, 7 November 2011
  26. 26. Catches & restrictions • Read-only file system • 30 seconds cap on http requests • The console hijacks the web processes • Processes limited to 300MB 512MB of RAM • Busted IP based SSL solutionMonday, 7 November 2011
  27. 27. Catches & restrictions • Read-only file system • 30 seconds cap on http requests • The console hijacks the web processes • Processes limited to 300MB 512MB of RAM • Busted IP based SSL solution • ... and for Australia, latencyMonday, 7 November 2011
  28. 28. TroubleshootingMonday, 7 November 2011
  29. 29. Troubleshooting • NewRelic: essencial to spot bottlenecks • database • external services - paypal, memcached • application • Heroku logsMonday, 7 November 2011
  30. 30. PerformanceMonday, 7 November 2011
  31. 31. Performance • ORMs are dumbMonday, 7 November 2011
  32. 32. Performance • ORMs are dumb • Offload stats from main DBMonday, 7 November 2011
  33. 33. Performance • ORMs are dumb • Offload stats from main DB • Cache everything but not until you really need itMonday, 7 November 2011
  34. 34. The new Heroku: Celadon CedarMonday, 7 November 2011
  35. 35. The new Heroku: Celadon Cedar New features (most in public beta)Monday, 7 November 2011
  36. 36. The new Heroku: Celadon Cedar New features (most in public beta) • The procfileMonday, 7 November 2011
  37. 37. The new Heroku: Celadon Cedar New features (most in public beta) • The procfile • One-off processesMonday, 7 November 2011
  38. 38. The new Heroku: Celadon Cedar New features (most in public beta) • The procfile • One-off processes • Node.js/Clojure/Java/Python...Monday, 7 November 2011
  39. 39. The new Heroku: Celadon Cedar New features (most in public beta) • The procfile • One-off processes • Node.js/Clojure/Java/Python... • New HTTP stackMonday, 7 November 2011
  40. 40. The new Heroku: Celadon Cedar New features (most in public beta) • The procfile • One-off processes • Node.js/Clojure/Java/Python... • New HTTP stack • The foreman gemMonday, 7 November 2011
  41. 41. The new Heroku: Celadon Cedar New features (most in public beta) • The procfile • One-off processes • Node.js/Clojure/Java/Python... • New HTTP stack • The foreman gem • Strive for purismMonday, 7 November 2011
  42. 42. The new Heroku: Celadon Cedar New features (most in public beta) • The procfile • One-off processes • Node.js/Clojure/Java/Python... • New HTTP stack • The foreman gem • Strive for purism • In the horizon (no ETA) : multi-region availabilityMonday, 7 November 2011
  43. 43. The ProcfileMonday, 7 November 2011
  44. 44. The Procfile Run anythingMonday, 7 November 2011
  45. 45. The Procfile Run anything Rails web: bundle exec rails server -p $PORT worker: bundle exec rake jobs:work Node.js web: node web.js Clojure web: lein run -m demo.webMonday, 7 November 2011
  46. 46. Multi-Region AvailabilityMonday, 7 November 2011
  47. 47. Multi-Region Availability • Not here yet...Monday, 7 November 2011
  48. 48. Multi-Region Availability • Not here yet... • DIY cloud availabilityMonday, 7 November 2011
  49. 49. Back in late 2010Monday, 7 November 2011
  50. 50. Back in late 2010 • 75% of Queensland under waterMonday, 7 November 2011
  51. 51. Back in late 2010 • 75% of Queensland under water • 35 dead / 9 missingMonday, 7 November 2011
  52. 52. Back in late 2010 • 75% of Queensland under water • 35 dead / 9 missing • A$ 30 billion in damagesMonday, 7 November 2011
  53. 53. Appeal to the peopleMonday, 7 November 2011
  54. 54. Appeal to the people • QLD Government to run a telethon on Channel NineMonday, 7 November 2011
  55. 55. Appeal to the people • QLD Government to run a telethon on Channel Nine • Dry run of existing system showed problemsMonday, 7 November 2011
  56. 56. Appeal to the people • QLD Government to run a telethon on Channel Nine • Dry run of existing system showed problems • Backup plan?Monday, 7 November 2011
  57. 57. We can help!Monday, 7 November 2011
  58. 58. We can help! • ThoughtWorks offered helpMonday, 7 November 2011
  59. 59. We can help! • ThoughtWorks offered help • We were at the beachMonday, 7 November 2011
  60. 60. We can help! • ThoughtWorks offered help • We were at the beach • and had 48hs to deliver!Monday, 7 November 2011
  61. 61. We can help! • ThoughtWorks offered help • We were at the beach • and had 48hs to deliver!Monday, 7 November 2011
  62. 62. What?!Monday, 7 November 2011
  63. 63. What?! • Payment gateway integrationMonday, 7 November 2011
  64. 64. What?! • Payment gateway integration • Donation receipts by email (thousands of them)Monday, 7 November 2011
  65. 65. What?! • Payment gateway integration • Donation receipts by email (thousands of them) • Ability to scale based on loadMonday, 7 November 2011
  66. 66. user What?! varnish app • Payment gateway integration • Donation receipts by email (thousands of them) • Ability to scale based on load payment DB mail gateway gatewayMonday, 7 November 2011
  67. 67. ChallengesMonday, 7 November 2011
  68. 68. Challenges • SSQ’s infra-structure was a no goMonday, 7 November 2011
  69. 69. Challenges • SSQ’s infra-structure was a no go • Had to come up with a solution for email sending as wellMonday, 7 November 2011
  70. 70. Challenges • SSQ’s infra-structure was a no go • Had to come up with a solution for email sending as well • SkepticismMonday, 7 November 2011
  71. 71. ChoicesMonday, 7 November 2011
  72. 72. Choices • AWSMonday, 7 November 2011
  73. 73. Choices • AWS - Cheaper but require opsMonday, 7 November 2011
  74. 74. Choices • AWS - Cheaper but require ops • HerokuMonday, 7 November 2011
  75. 75. Choices • AWS - Cheaper but require ops • Heroku - PaaS - no/less opsMonday, 7 November 2011
  76. 76. Choices • AWS - Cheaper but require ops • Heroku - PaaS - no/less ops - As simple as a git pushMonday, 7 November 2011
  77. 77. Choices • AWS - Cheaper but require ops • Heroku - PaaS - no/less ops - As simple as a git push - Focus on your appMonday, 7 November 2011
  78. 78. Choices • AWS - Cheaper but require ops • Heroku - PaaS - no/less ops - As simple as a git push - Focus on your app - Dozens of add-ons out of the boxMonday, 7 November 2011
  79. 79. Choices • AWS - Cheaper but require ops • Heroku - PaaS - no/less ops - As simple as a git push - Focus on your app - Dozens of add-ons out of the box - $0.00 upfront costMonday, 7 November 2011
  80. 80. Choices • AWS - Cheaper but require ops • Heroku - PaaS - no/less ops - As simple as a git push - Focus on your app - Dozens of add-ons out of the box - $0.00 upfront costMonday, 7 November 2011
  81. 81. One last ingredient... Ben Barnard, Phillip Calçado and myselfMonday, 7 November 2011
  82. 82. One last ingredient... An awesome team, committed and having fun on a weekend :) Ben Barnard, Phillip Calçado and myselfMonday, 7 November 2011
  83. 83. The telethonMonday, 7 November 2011
  84. 84. The telethon • Live on channel 9 for 2 hoursMonday, 7 November 2011
  85. 85. The telethon • Live on channel 9 for 2 hours • SSQ’s app went down at the very startMonday, 7 November 2011
  86. 86. The telethon • Live on channel 9 for 2 hours • SSQ’s app went down at the very start • The “backup” plan was now the main appMonday, 7 November 2011
  87. 87. What we achievedMonday, 7 November 2011
  88. 88. What we achieved Despite all skepticism we...Monday, 7 November 2011
  89. 89. What we achieved Despite all skepticism we... • Developed a production ready donation app using Ruby on RailsMonday, 7 November 2011
  90. 90. What we achieved Despite all skepticism we... • Developed a production ready donation app using Ruby on Rails • Leveraged PaaS to get ops out of the wayMonday, 7 November 2011
  91. 91. What we achieved Despite all skepticism we... • Developed a production ready donation app using Ruby on Rails • Leveraged PaaS to get ops out of the way • Generated over A$ 2 million in donations during the telethonMonday, 7 November 2011
  92. 92. What we achieved Despite all skepticism we... • Developed a production ready donation app using Ruby on Rails • Leveraged PaaS to get ops out of the way • Generated over A$ 2 million in donations during the telethon • And over A$ 38 million since thenMonday, 7 November 2011
  93. 93. What we achieved Despite all skepticism we... • Developed a production ready donation app using Ruby on Rails • Leveraged PaaS to get ops out of the way • Generated over A$ 2 million in donations during the telethon • And over A$ 38 million since then ...all in a 48 hour effortMonday, 7 November 2011
  94. 94. Anyone still thinks ‘the cloud’ isn’t for serious stuff?Monday, 7 November 2011
  95. 95. Thanks for listening! Questions? @leonardo_borges www.leonardoborges.com Leonardo BorgesMonday, 7 November 2011

×