Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Clouds against           the floods           or how RoR saved the day in           Australia            Leonardo BorgesMon...
self slide                          • ThoughtWorker in Sydney, Australia                          • Programming languages ...
self slide                                   • ThoughtWorker in Sydney, Australia                                   • Prog...
Let’s step back for a sec...Monday, 7 November 2011
Heroku, an overviewMonday, 7 November 2011
Heroku, an overview                          Basic conceptsMonday, 7 November 2011
Heroku, an overview                          Basic concepts                            • PaaSMonday, 7 November 2011
Heroku, an overview                          Basic concepts                            • PaaS                            •...
Heroku, an overview                          Basic concepts                            • PaaS                            •...
Heroku, an overview                          Basic concepts                            • PaaS                            •...
Heroku, an overview                          Basic concepts                            • PaaS                            •...
Simplistic view of a web request                                   request                                   routing      ...
Simplistic view of a web request                                               request                                    ...
A typical setupMonday, 7 November 2011
A typical setup                          EnvironmentsMonday, 7 November 2011
A typical setup                          Environments                            • staging, showcase and productionMonday,...
A typical setup                          Environments                            • staging, showcase and productionMonday,...
A typical setup                          Environments                            • staging, showcase and productionMonday,...
A typical setup                          Environments                            • staging, showcase and production       ...
But before you get too excited...Monday, 7 November 2011
Catches & restrictionsMonday, 7 November 2011
Catches & restrictions       • Read-only file systemMonday, 7 November 2011
Catches & restrictions       • Read-only file system       • 30 seconds cap on http requestsMonday, 7 November 2011
Catches & restrictions       • Read-only file system       • 30 seconds cap on http requests       • The console hijacks th...
Catches & restrictions       • Read-only file system       • 30 seconds cap on http requests       • The console hijacks th...
Catches & restrictions       • Read-only file system       • 30 seconds cap on http requests       • The console hijacks th...
Catches & restrictions       • Read-only file system       • 30 seconds cap on http requests       • The console hijacks th...
TroubleshootingMonday, 7 November 2011
Troubleshooting                          • NewRelic: essencial to spot                           bottlenecks              ...
PerformanceMonday, 7 November 2011
Performance       • ORMs are dumbMonday, 7 November 2011
Performance       • ORMs are dumb       • Offload stats from main DBMonday, 7 November 2011
Performance       • ORMs are dumb       • Offload stats from main DB       • Cache everything but not until you really     ...
The new Heroku:                          Celadon CedarMonday, 7 November 2011
The new Heroku:                          Celadon Cedar                          New features (most in public beta)Monday, ...
The new Heroku:                          Celadon Cedar                          New features (most in public beta)        ...
The new Heroku:                          Celadon Cedar                          New features (most in public beta)        ...
The new Heroku:                          Celadon Cedar                          New features (most in public beta)        ...
The new Heroku:                          Celadon Cedar                          New features (most in public beta)        ...
The new Heroku:                          Celadon Cedar                          New features (most in public beta)        ...
The new Heroku:                          Celadon Cedar                          New features (most in public beta)        ...
The new Heroku:                          Celadon Cedar                          New features (most in public beta)        ...
The ProcfileMonday, 7 November 2011
The Procfile                          Run anythingMonday, 7 November 2011
The Procfile                          Run anything                          Rails                          web:      bundle...
Multi-Region                          AvailabilityMonday, 7 November 2011
Multi-Region                          Availability                          • Not here yet...Monday, 7 November 2011
Multi-Region                          Availability                          • Not here yet...                          • D...
Back in late 2010Monday, 7 November 2011
Back in late 2010                          • 75% of Queensland under waterMonday, 7 November 2011
Back in late 2010                          • 75% of Queensland under water                          • 35 dead / 9 missingM...
Back in late 2010                          • 75% of Queensland under water                          • 35 dead / 9 missing ...
Appeal to the peopleMonday, 7 November 2011
Appeal to the people       • QLD Government to run a          telethon on Channel NineMonday, 7 November 2011
Appeal to the people       • QLD Government to run a          telethon on Channel Nine       • Dry run of existing system ...
Appeal to the people       • QLD Government to run a          telethon on Channel Nine       • Dry run of existing system ...
We can help!Monday, 7 November 2011
We can help!                          • ThoughtWorks offered helpMonday, 7 November 2011
We can help!                          • ThoughtWorks offered help                          • We were at the beachMonday, 7...
We can help!                          • ThoughtWorks offered help                          • We were at the beach         ...
We can help!                          • ThoughtWorks offered help                          • We were at the beach         ...
What?!Monday, 7 November 2011
What?!       • Payment gateway integrationMonday, 7 November 2011
What?!       • Payment gateway integration       • Donation receipts by email          (thousands of them)Monday, 7 Novemb...
What?!       • Payment gateway integration       • Donation receipts by email          (thousands of them)       • Ability...
user      What?!                                                    varnish                                               ...
ChallengesMonday, 7 November 2011
Challenges                          • SSQ’s infra-structure was a no goMonday, 7 November 2011
Challenges                          • SSQ’s infra-structure was a no go                          • Had to come up with a s...
Challenges                          • SSQ’s infra-structure was a no go                          • Had to come up with a s...
ChoicesMonday, 7 November 2011
Choices       • AWSMonday, 7 November 2011
Choices       • AWS        - Cheaper but require opsMonday, 7 November 2011
Choices       • AWS        - Cheaper but require ops       • HerokuMonday, 7 November 2011
Choices       • AWS        - Cheaper but require ops       • Heroku        - PaaS - no/less opsMonday, 7 November 2011
Choices       • AWS        - Cheaper but require ops       • Heroku        - PaaS - no/less ops        - As simple as a gi...
Choices       • AWS        - Cheaper but require ops       • Heroku        - PaaS - no/less ops        - As simple as a gi...
Choices       • AWS        - Cheaper but require ops       • Heroku        - PaaS - no/less ops        - As simple as a gi...
Choices       • AWS        - Cheaper but require ops       • Heroku        - PaaS - no/less ops        - As simple as a gi...
Choices       • AWS        - Cheaper but require ops       • Heroku        - PaaS - no/less ops        - As simple as a gi...
One last ingredient...                          Ben Barnard, Phillip Calçado and myselfMonday, 7 November 2011
One last ingredient...                                                                    An awesome team, committed and  ...
The telethonMonday, 7 November 2011
The telethon       • Live on channel 9 for 2 hoursMonday, 7 November 2011
The telethon       • Live on channel 9 for 2 hours       • SSQ’s app went down at the very          startMonday, 7 Novembe...
The telethon       • Live on channel 9 for 2 hours       • SSQ’s app went down at the very          start       • The “bac...
What we achievedMonday, 7 November 2011
What we achieved                          Despite all skepticism we...Monday, 7 November 2011
What we achieved                          Despite all skepticism we...                          • Developed a production r...
What we achieved                          Despite all skepticism we...                          • Developed a production r...
What we achieved                          Despite all skepticism we...                          • Developed a production r...
What we achieved                          Despite all skepticism we...                          • Developed a production r...
What we achieved                          Despite all skepticism we...                          • Developed a production r...
Anyone still thinks ‘the cloud’ isn’t for                     serious stuff?Monday, 7 November 2011
Thanks for listening!                                  Questions?                                    @leonardo_borges     ...
Upcoming SlideShare
Loading in …5
×

Clouds against the Floods (RubyConfBR2011)

2,443 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

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

×