SlideShare a Scribd company logo
1 of 36
Clouds against the Floodsor how Ruby On Rails saved the day in Australia



Leonardo Borges
www.leonardoborges.com
What do I do?
• Write code for ThoughtWorks in Sydney, Australia
• Contribute to open-source projects, on occasion
  - Rails
  - JRuby
  - rcov_plugin
  - Savon
• Blog, rant and cause trouble online
 - www.leonardoborges.com
 - @leonardo_borges
• Get shy in presentations like this one



 Leonardo Borges
 www.leonardoborges.com
What?




Leonardo Borges
www.leonardoborges.com
What?
• 75% of Queensland under water




 Leonardo Borges
 www.leonardoborges.com
What?
• 75% of Queensland under water
• Government to run a telethon on Channel 9




 Leonardo Borges
 www.leonardoborges.com
What?
• 75% of Queensland under water
• Government to run a telethon on Channel 9
• SSQ’s donation app misbehaved




 Leonardo Borges
 www.leonardoborges.com
What?
• 75% of Queensland under water
• Government to run a telethon on Channel 9
• SSQ’s donation app misbehaved
• backup plan?




 Leonardo Borges
 www.leonardoborges.com
We can help!
• ThoughtWorks offered to give a hand
• we were at the beach
• and were pulled in 2 days before the telethon




 Leonardo Borges
 www.leonardoborges.com
How?




Leonardo Borges
www.leonardoborges.com
How?
• Rails, of course




 Leonardo Borges
 www.leonardoborges.com
How?
• Rails, of course
• Deployment options




 Leonardo Borges
 www.leonardoborges.com
How?
• Rails, of course
• Deployment options
   - Amazon EC2




 Leonardo Borges
 www.leonardoborges.com
How?
• Rails, of course
• Deployment options
   - Amazon EC2
   - Heroku




 Leonardo Borges
 www.leonardoborges.com
How?
• Rails, of course
• Deployment options
   - Amazon EC2
   - Heroku




 Leonardo Borges
 www.leonardoborges.com
How?
• Rails, of course
• Deployment options
   - Amazon EC2
   - Heroku
•An awesome team




                          Ben Barnard, me and Phillip Calçado


 Leonardo Borges
 www.leonardoborges.com
The donation app
• form for donor details
• payment gateway integration
• background jobs - sending emails




 Leonardo Borges
 www.leonardoborges.com
The donation app
• form for donor details
• payment gateway integration
• background jobs - sending emails
   - delayed_job gem
   - SMTP capable of sending thousands of emails




 Leonardo Borges
 www.leonardoborges.com
The donation app
• form for donor details
• payment gateway integration
• background jobs - sending emails
   - delayed_job gem
   - SMTP capable of sending thousands of emails




 Leonardo Borges
 www.leonardoborges.com
Monitoring,
Benchmarking &
Caching




Leonardo Borges
www.leonardoborges.com
Monitoring,
Benchmarking &
Caching
• NewRelic




Leonardo Borges
www.leonardoborges.com
Monitoring,
Benchmarking &
Caching
• NewRelic
   - Identifying errors early




 Leonardo Borges
 www.leonardoborges.com
Monitoring,
Benchmarking &
Caching
• NewRelic
   - Identifying errors early
   - Measuring server load and scaling accordingly




 Leonardo Borges
 www.leonardoborges.com
Monitoring,
Benchmarking &
Caching
• NewRelic
   - Identifying errors early
   - Measuring server load and scaling accordingly
• Apache AB




 Leonardo Borges
 www.leonardoborges.com
Monitoring,
Benchmarking &
Caching
• NewRelic
   - Identifying errors early
   - Measuring server load and scaling accordingly
• Apache AB
   - Finding the bottlenecks




 Leonardo Borges
 www.leonardoborges.com
Monitoring,
Benchmarking &
Caching
• NewRelic
   - Identifying errors early
   - Measuring server load and scaling accordingly
• Apache AB
   - Finding the bottlenecks
• Varnish




 Leonardo Borges
 www.leonardoborges.com
Monitoring,
Benchmarking &
Caching
• NewRelic
   - Identifying errors early
   - Measuring server load and scaling accordingly
• Apache AB
   - Finding the bottlenecks
• Varnish
   - Aggressive caching




 Leonardo Borges
 www.leonardoborges.com
Monitoring,
Benchmarking &
Caching
• NewRelic
   - Identifying errors early
   - Measuring server load and scaling accordingly
• Apache AB
   - Finding the bottlenecks
• Varnish
   - Aggressive caching




 Leonardo Borges
 www.leonardoborges.com
Winning over the skepticism




Leonardo Borges
www.leonardoborges.com
Winning over the skepticism
• When we first offered help...
   - Ruby? You can’t do nothing serious with Ruby
   - The schedule is too tight!
   - How are you gonna deploy this thing?




 Leonardo Borges
 www.leonardoborges.com
Winning over the skepticism
• When we first offered help...
   - Ruby? You can’t do nothing serious with Ruby
   - The schedule is too tight!
   - How are you gonna deploy this thing?

• What happened...
   - Their app went down at the start of the telethon
   - Remember the backup plan?




 Leonardo Borges
 www.leonardoborges.com
Winning over the skepticism
• When we first offered help...                          • We developed and deployed an app that...
   - Ruby? You can’t do nothing serious with Ruby          - was built Ruby on Rails
   - The schedule is too tight!                            - scales
   - How are you gonna deploy this thing?                  - integrates with a few external services
                                                           - handled the load comfortably
                                                               - 15 req/sec during the telethon
• What happened...                                             - AUD$ 2 million generated in two hours
   - Their app went down at the start of the telethon      - received over AUD$ 30 million in donations thus far
   - Remember the backup plan?                             - has been the main app since then




 Leonardo Borges
 www.leonardoborges.com
Winning over the skepticism
• When we first offered help...                          • We developed and deployed an app that...
   - Ruby? You can’t do nothing serious with Ruby          - was built Ruby on Rails
   - The schedule is too tight!                            - scales
   - How are you gonna deploy this thing?                  - integrates with a few external services
                                                           - handled the load comfortably
                                                               - 15 req/sec during the telethon
• What happened...                                             - AUD$ 2 million generated in two hours
   - Their app went down at the start of the telethon      - received over AUD$ 30 million in donations thus far
   - Remember the backup plan?                             - has been the main app since then
                                                                                             ... in a little over 48 hours




 Leonardo Borges
 www.leonardoborges.com
Winning over the skepticism
• When we first offered help...                          • We developed and deployed an app that...
   - Ruby? You can’t do nothing serious with Ruby          - was built Ruby on Rails
   - The schedule is too tight!                            - scales
   - How are you gonna deploy this thing?                  - integrates with a few external services
                                                           - handled the load comfortably
                                                               - 15 req/sec during the telethon
• What happened...                                             - AUD$ 2 million generated in two hours
   - Their app went down at the start of the telethon      - received over AUD$ 30 million in donations thus far
   - Remember the backup plan?                             - has been the main app since then
                                                                                             ... in a little over 48 hours




 Leonardo Borges
 www.leonardoborges.com
Resources
• rubyonrails.org
• fragmental.tw - Phillip Calçado
• heroku.com
• sendgrid.com
• newrelic.com
• httpd.apache.org/docs/2.0/programs/ab.html
• github.com/collectiveidea/delayed_job




 Leonardo Borges
 www.leonardoborges.com
Q&A




Leonardo Borges
www.leonardoborges.com
Thank you!




Leonardo Borges
www.leonardoborges.com

More Related Content

Similar to Clouds Against the Floods

Subverting the monolith!
Subverting the monolith!Subverting the monolith!
Subverting the monolith!Sophia Russell
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changesJaewoo Ahn
 
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...Loadzen
 
GEOSS Future Products & GeoSocial API
GEOSS Future Products & GeoSocial APIGEOSS Future Products & GeoSocial API
GEOSS Future Products & GeoSocial APIPat Cappelaere
 
Cloud conference - mongodb
Cloud conference - mongodbCloud conference - mongodb
Cloud conference - mongodbMitch Pirtle
 
Market research in the mobile work or naturalism struggle for reality
Market research in the mobile work or naturalism   struggle for realityMarket research in the mobile work or naturalism   struggle for reality
Market research in the mobile work or naturalism struggle for realityMerlien Institute
 
Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...
Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...
Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...Future Perfect 2012
 
Putting legacy to REST with middleware
Putting legacy to REST with middlewarePutting legacy to REST with middleware
Putting legacy to REST with middlewareAdam Culp
 
Node js - Enterprise Class
Node js - Enterprise ClassNode js - Enterprise Class
Node js - Enterprise ClassGlenn Block
 
Evolution of software projects
Evolution of software projectsEvolution of software projects
Evolution of software projectsDima Malenko
 
Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Christian Heilmann
 
Hacklu2011 tricaud
Hacklu2011 tricaudHacklu2011 tricaud
Hacklu2011 tricaudstricaud
 
Software Development & Architecture @ LinkedIn
Software Development & Architecture @ LinkedInSoftware Development & Architecture @ LinkedIn
Software Development & Architecture @ LinkedInC4Media
 
From Zero to App-Super-Hero with Titanium
From Zero to App-Super-Hero with TitaniumFrom Zero to App-Super-Hero with Titanium
From Zero to App-Super-Hero with TitaniumLiz Myers
 
DockerDay 2015: From months to minutes - How GE appliances brought docker int...
DockerDay 2015: From months to minutes - How GE appliances brought docker int...DockerDay 2015: From months to minutes - How GE appliances brought docker int...
DockerDay 2015: From months to minutes - How GE appliances brought docker int...Docker-Hanoi
 
StartOps: Growing an ops team from 1 founder
StartOps: Growing an ops team from 1 founderStartOps: Growing an ops team from 1 founder
StartOps: Growing an ops team from 1 founderServer Density
 
apidays Australia 2022 - Debunking the Big Aussie F Word – Fintech BFF Buildi...
apidays Australia 2022 - Debunking the Big Aussie F Word – Fintech BFF Buildi...apidays Australia 2022 - Debunking the Big Aussie F Word – Fintech BFF Buildi...
apidays Australia 2022 - Debunking the Big Aussie F Word – Fintech BFF Buildi...apidays
 

Similar to Clouds Against the Floods (20)

Subverting the monolith!
Subverting the monolith!Subverting the monolith!
Subverting the monolith!
 
Open GeoSocial API
Open GeoSocial APIOpen GeoSocial API
Open GeoSocial API
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
 
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...
 
GEOSS Future Products & GeoSocial API
GEOSS Future Products & GeoSocial APIGEOSS Future Products & GeoSocial API
GEOSS Future Products & GeoSocial API
 
Dibi Conference 2012
Dibi Conference 2012Dibi Conference 2012
Dibi Conference 2012
 
Cloud conference - mongodb
Cloud conference - mongodbCloud conference - mongodb
Cloud conference - mongodb
 
Market research in the mobile work or naturalism struggle for reality
Market research in the mobile work or naturalism   struggle for realityMarket research in the mobile work or naturalism   struggle for reality
Market research in the mobile work or naturalism struggle for reality
 
Yatoto-technical
Yatoto-technicalYatoto-technical
Yatoto-technical
 
Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...
Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...
Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...
 
Putting legacy to REST with middleware
Putting legacy to REST with middlewarePutting legacy to REST with middleware
Putting legacy to REST with middleware
 
Node js - Enterprise Class
Node js - Enterprise ClassNode js - Enterprise Class
Node js - Enterprise Class
 
Evolution of software projects
Evolution of software projectsEvolution of software projects
Evolution of software projects
 
Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015
 
Hacklu2011 tricaud
Hacklu2011 tricaudHacklu2011 tricaud
Hacklu2011 tricaud
 
Software Development & Architecture @ LinkedIn
Software Development & Architecture @ LinkedInSoftware Development & Architecture @ LinkedIn
Software Development & Architecture @ LinkedIn
 
From Zero to App-Super-Hero with Titanium
From Zero to App-Super-Hero with TitaniumFrom Zero to App-Super-Hero with Titanium
From Zero to App-Super-Hero with Titanium
 
DockerDay 2015: From months to minutes - How GE appliances brought docker int...
DockerDay 2015: From months to minutes - How GE appliances brought docker int...DockerDay 2015: From months to minutes - How GE appliances brought docker int...
DockerDay 2015: From months to minutes - How GE appliances brought docker int...
 
StartOps: Growing an ops team from 1 founder
StartOps: Growing an ops team from 1 founderStartOps: Growing an ops team from 1 founder
StartOps: Growing an ops team from 1 founder
 
apidays Australia 2022 - Debunking the Big Aussie F Word – Fintech BFF Buildi...
apidays Australia 2022 - Debunking the Big Aussie F Word – Fintech BFF Buildi...apidays Australia 2022 - Debunking the Big Aussie F Word – Fintech BFF Buildi...
apidays Australia 2022 - Debunking the Big Aussie F Word – Fintech BFF Buildi...
 

More from Leonardo Borges

Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015Leonardo Borges
 
Parametricity - #cljsyd - May, 2015
Parametricity - #cljsyd - May, 2015Parametricity - #cljsyd - May, 2015
Parametricity - #cljsyd - May, 2015Leonardo Borges
 
From Java to Parellel Clojure - Clojure South 2019
From Java to Parellel Clojure - Clojure South 2019From Java to Parellel Clojure - Clojure South 2019
From Java to Parellel Clojure - Clojure South 2019Leonardo Borges
 
The algebra of library design
The algebra of library designThe algebra of library design
The algebra of library designLeonardo Borges
 
Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015Leonardo Borges
 
Functional Reactive Programming / Compositional Event Systems
Functional Reactive Programming / Compositional Event SystemsFunctional Reactive Programming / Compositional Event Systems
Functional Reactive Programming / Compositional Event SystemsLeonardo Borges
 
High Performance web apps in Om, React and ClojureScript
High Performance web apps in Om, React and ClojureScriptHigh Performance web apps in Om, React and ClojureScript
High Performance web apps in Om, React and ClojureScriptLeonardo Borges
 
Programação functional reativa: lidando com código assíncrono
Programação functional reativa: lidando com código assíncronoProgramação functional reativa: lidando com código assíncrono
Programação functional reativa: lidando com código assíncronoLeonardo Borges
 
Intro to Clojure's core.async
Intro to Clojure's core.asyncIntro to Clojure's core.async
Intro to Clojure's core.asyncLeonardo Borges
 
Functional Reactive Programming in Clojurescript
Functional Reactive Programming in ClojurescriptFunctional Reactive Programming in Clojurescript
Functional Reactive Programming in ClojurescriptLeonardo Borges
 
Clojure/West 2013 in 30 mins
Clojure/West 2013 in 30 minsClojure/West 2013 in 30 mins
Clojure/West 2013 in 30 minsLeonardo Borges
 
The many facets of code reuse in JavaScript
The many facets of code reuse in JavaScriptThe many facets of code reuse in JavaScript
The many facets of code reuse in JavaScriptLeonardo Borges
 
Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012Leonardo Borges
 

More from Leonardo Borges (16)

Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
 
Parametricity - #cljsyd - May, 2015
Parametricity - #cljsyd - May, 2015Parametricity - #cljsyd - May, 2015
Parametricity - #cljsyd - May, 2015
 
From Java to Parellel Clojure - Clojure South 2019
From Java to Parellel Clojure - Clojure South 2019From Java to Parellel Clojure - Clojure South 2019
From Java to Parellel Clojure - Clojure South 2019
 
The algebra of library design
The algebra of library designThe algebra of library design
The algebra of library design
 
Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015
 
Functional Reactive Programming / Compositional Event Systems
Functional Reactive Programming / Compositional Event SystemsFunctional Reactive Programming / Compositional Event Systems
Functional Reactive Programming / Compositional Event Systems
 
High Performance web apps in Om, React and ClojureScript
High Performance web apps in Om, React and ClojureScriptHigh Performance web apps in Om, React and ClojureScript
High Performance web apps in Om, React and ClojureScript
 
Programação functional reativa: lidando com código assíncrono
Programação functional reativa: lidando com código assíncronoProgramação functional reativa: lidando com código assíncrono
Programação functional reativa: lidando com código assíncrono
 
Monads in Clojure
Monads in ClojureMonads in Clojure
Monads in Clojure
 
Intro to Clojure's core.async
Intro to Clojure's core.asyncIntro to Clojure's core.async
Intro to Clojure's core.async
 
Functional Reactive Programming in Clojurescript
Functional Reactive Programming in ClojurescriptFunctional Reactive Programming in Clojurescript
Functional Reactive Programming in Clojurescript
 
Clojure/West 2013 in 30 mins
Clojure/West 2013 in 30 minsClojure/West 2013 in 30 mins
Clojure/West 2013 in 30 mins
 
The many facets of code reuse in JavaScript
The many facets of code reuse in JavaScriptThe many facets of code reuse in JavaScript
The many facets of code reuse in JavaScript
 
Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012
 
Testing with Spring
Testing with SpringTesting with Spring
Testing with Spring
 
JRuby in The Enterprise
JRuby in The EnterpriseJRuby in The Enterprise
JRuby in The Enterprise
 

Clouds Against the Floods

  • 1. Clouds against the Floodsor how Ruby On Rails saved the day in Australia Leonardo Borges www.leonardoborges.com
  • 2. What do I do? • Write code for ThoughtWorks in Sydney, Australia • Contribute to open-source projects, on occasion - Rails - JRuby - rcov_plugin - Savon • Blog, rant and cause trouble online - www.leonardoborges.com - @leonardo_borges • Get shy in presentations like this one Leonardo Borges www.leonardoborges.com
  • 4. What? • 75% of Queensland under water Leonardo Borges www.leonardoborges.com
  • 5. What? • 75% of Queensland under water • Government to run a telethon on Channel 9 Leonardo Borges www.leonardoborges.com
  • 6. What? • 75% of Queensland under water • Government to run a telethon on Channel 9 • SSQ’s donation app misbehaved Leonardo Borges www.leonardoborges.com
  • 7. What? • 75% of Queensland under water • Government to run a telethon on Channel 9 • SSQ’s donation app misbehaved • backup plan? Leonardo Borges www.leonardoborges.com
  • 8. We can help! • ThoughtWorks offered to give a hand • we were at the beach • and were pulled in 2 days before the telethon Leonardo Borges www.leonardoborges.com
  • 10. How? • Rails, of course Leonardo Borges www.leonardoborges.com
  • 11. How? • Rails, of course • Deployment options Leonardo Borges www.leonardoborges.com
  • 12. How? • Rails, of course • Deployment options - Amazon EC2 Leonardo Borges www.leonardoborges.com
  • 13. How? • Rails, of course • Deployment options - Amazon EC2 - Heroku Leonardo Borges www.leonardoborges.com
  • 14. How? • Rails, of course • Deployment options - Amazon EC2 - Heroku Leonardo Borges www.leonardoborges.com
  • 15. How? • Rails, of course • Deployment options - Amazon EC2 - Heroku •An awesome team Ben Barnard, me and Phillip Calçado Leonardo Borges www.leonardoborges.com
  • 16. The donation app • form for donor details • payment gateway integration • background jobs - sending emails Leonardo Borges www.leonardoborges.com
  • 17. The donation app • form for donor details • payment gateway integration • background jobs - sending emails - delayed_job gem - SMTP capable of sending thousands of emails Leonardo Borges www.leonardoborges.com
  • 18. The donation app • form for donor details • payment gateway integration • background jobs - sending emails - delayed_job gem - SMTP capable of sending thousands of emails Leonardo Borges www.leonardoborges.com
  • 21. Monitoring, Benchmarking & Caching • NewRelic - Identifying errors early Leonardo Borges www.leonardoborges.com
  • 22. Monitoring, Benchmarking & Caching • NewRelic - Identifying errors early - Measuring server load and scaling accordingly Leonardo Borges www.leonardoborges.com
  • 23. Monitoring, Benchmarking & Caching • NewRelic - Identifying errors early - Measuring server load and scaling accordingly • Apache AB Leonardo Borges www.leonardoborges.com
  • 24. Monitoring, Benchmarking & Caching • NewRelic - Identifying errors early - Measuring server load and scaling accordingly • Apache AB - Finding the bottlenecks Leonardo Borges www.leonardoborges.com
  • 25. Monitoring, Benchmarking & Caching • NewRelic - Identifying errors early - Measuring server load and scaling accordingly • Apache AB - Finding the bottlenecks • Varnish Leonardo Borges www.leonardoborges.com
  • 26. Monitoring, Benchmarking & Caching • NewRelic - Identifying errors early - Measuring server load and scaling accordingly • Apache AB - Finding the bottlenecks • Varnish - Aggressive caching Leonardo Borges www.leonardoborges.com
  • 27. Monitoring, Benchmarking & Caching • NewRelic - Identifying errors early - Measuring server load and scaling accordingly • Apache AB - Finding the bottlenecks • Varnish - Aggressive caching Leonardo Borges www.leonardoborges.com
  • 28. Winning over the skepticism Leonardo Borges www.leonardoborges.com
  • 29. Winning over the skepticism • When we first offered help... - Ruby? You can’t do nothing serious with Ruby - The schedule is too tight! - How are you gonna deploy this thing? Leonardo Borges www.leonardoborges.com
  • 30. Winning over the skepticism • When we first offered help... - Ruby? You can’t do nothing serious with Ruby - The schedule is too tight! - How are you gonna deploy this thing? • What happened... - Their app went down at the start of the telethon - Remember the backup plan? Leonardo Borges www.leonardoborges.com
  • 31. Winning over the skepticism • When we first offered help... • We developed and deployed an app that... - Ruby? You can’t do nothing serious with Ruby - was built Ruby on Rails - The schedule is too tight! - scales - How are you gonna deploy this thing? - integrates with a few external services - handled the load comfortably - 15 req/sec during the telethon • What happened... - AUD$ 2 million generated in two hours - Their app went down at the start of the telethon - received over AUD$ 30 million in donations thus far - Remember the backup plan? - has been the main app since then Leonardo Borges www.leonardoborges.com
  • 32. Winning over the skepticism • When we first offered help... • We developed and deployed an app that... - Ruby? You can’t do nothing serious with Ruby - was built Ruby on Rails - The schedule is too tight! - scales - How are you gonna deploy this thing? - integrates with a few external services - handled the load comfortably - 15 req/sec during the telethon • What happened... - AUD$ 2 million generated in two hours - Their app went down at the start of the telethon - received over AUD$ 30 million in donations thus far - Remember the backup plan? - has been the main app since then ... in a little over 48 hours Leonardo Borges www.leonardoborges.com
  • 33. Winning over the skepticism • When we first offered help... • We developed and deployed an app that... - Ruby? You can’t do nothing serious with Ruby - was built Ruby on Rails - The schedule is too tight! - scales - How are you gonna deploy this thing? - integrates with a few external services - handled the load comfortably - 15 req/sec during the telethon • What happened... - AUD$ 2 million generated in two hours - Their app went down at the start of the telethon - received over AUD$ 30 million in donations thus far - Remember the backup plan? - has been the main app since then ... in a little over 48 hours Leonardo Borges www.leonardoborges.com
  • 34. Resources • rubyonrails.org • fragmental.tw - Phillip Calçado • heroku.com • sendgrid.com • newrelic.com • httpd.apache.org/docs/2.0/programs/ab.html • github.com/collectiveidea/delayed_job Leonardo Borges www.leonardoborges.com

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n