Clouds against the Floods (RubyConfBR2011)
Upcoming SlideShare
Loading in...5
×
 

Clouds against the Floods (RubyConfBR2011)

on

  • 1,369 views

 

Statistics

Views

Total Views
1,369
Views on SlideShare
955
Embed Views
414

Actions

Likes
0
Downloads
4
Comments
0

5 Embeds 414

http://www.leonardoborges.com 385
http://localhost 19
http://lanyrd.com 8
http://www.hanrss.com 1
http://leonardoborges.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Clouds against the Floods (RubyConfBR2011) Clouds against the Floods (RubyConfBR2011) Presentation Transcript

  • Clouds against the floods or how RoR saved the day in Australia Leonardo BorgesMonday, 7 November 2011
  • 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
  • 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
  • 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 • Git based deployment cycleMonday, 7 November 2011
  • Heroku, an overview Basic concepts • PaaS • Git based deployment cycle • Dynos (web processes)Monday, 7 November 2011
  • Heroku, an overview Basic concepts • PaaS • Git based deployment cycle • Dynos (web processes) • Workers (background processes)Monday, 7 November 2011
  • Heroku, an overview Basic concepts • PaaS • Git based deployment cycle • Dynos (web processes) • Workers (background processes) • CronMonday, 7 November 2011
  • Simplistic view of a web request request routing dynoMonday, 7 November 2011
  • 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
  • A typical setupMonday, 7 November 2011
  • A typical setup EnvironmentsMonday, 7 November 2011
  • A typical setup Environments • staging, showcase and productionMonday, 7 November 2011
  • A typical setup Environments • staging, showcase and productionMonday, 7 November 2011
  • A typical setup Environments • staging, showcase and productionMonday, 7 November 2011
  • A typical setup Environments • staging, showcase and production Branching strategy • develop • master (tagged release candidates)Monday, 7 November 2011
  • 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 the web processesMonday, 7 November 2011
  • 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
  • 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
  • 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
  • TroubleshootingMonday, 7 November 2011
  • Troubleshooting • NewRelic: essencial to spot bottlenecks • database • external services - paypal, memcached • application • Heroku logsMonday, 7 November 2011
  • 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 need itMonday, 7 November 2011
  • The new Heroku: Celadon CedarMonday, 7 November 2011
  • The new Heroku: Celadon Cedar New features (most in public beta)Monday, 7 November 2011
  • The new Heroku: Celadon Cedar New features (most in public beta) • The procfileMonday, 7 November 2011
  • The new Heroku: Celadon Cedar New features (most in public beta) • The procfile • One-off processesMonday, 7 November 2011
  • 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
  • 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
  • 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
  • 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
  • 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
  • The ProcfileMonday, 7 November 2011
  • The Procfile Run anythingMonday, 7 November 2011
  • 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
  • Multi-Region AvailabilityMonday, 7 November 2011
  • Multi-Region Availability • Not here yet...Monday, 7 November 2011
  • Multi-Region Availability • Not here yet... • DIY cloud availabilityMonday, 7 November 2011
  • 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 missingMonday, 7 November 2011
  • Back in late 2010 • 75% of Queensland under water • 35 dead / 9 missing • A$ 30 billion in damagesMonday, 7 November 2011
  • 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 showed problemsMonday, 7 November 2011
  • 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
  • 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 November 2011
  • We can help! • ThoughtWorks offered help • We were at the beach • and had 48hs to deliver!Monday, 7 November 2011
  • We can help! • ThoughtWorks offered help • We were at the beach • and had 48hs to deliver!Monday, 7 November 2011
  • 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 November 2011
  • What?! • Payment gateway integration • Donation receipts by email (thousands of them) • Ability to scale based on loadMonday, 7 November 2011
  • 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
  • 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 solution for email sending as wellMonday, 7 November 2011
  • 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
  • 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 git pushMonday, 7 November 2011
  • Choices • AWS - Cheaper but require ops • Heroku - PaaS - no/less ops - As simple as a git push - Focus on your appMonday, 7 November 2011
  • 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
  • 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
  • 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
  • One last ingredient... Ben Barnard, Phillip Calçado and myselfMonday, 7 November 2011
  • One last ingredient... An awesome team, committed and having fun on a weekend :) Ben Barnard, Phillip Calçado and myselfMonday, 7 November 2011
  • 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 November 2011
  • 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
  • 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 ready donation app using Ruby on RailsMonday, 7 November 2011
  • 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
  • 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
  • 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
  • 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
  • Anyone still thinks ‘the cloud’ isn’t for serious stuff?Monday, 7 November 2011
  • Thanks for listening! Questions? @leonardo_borges www.leonardoborges.com Leonardo BorgesMonday, 7 November 2011