Presenting Overloadr: The Great Rails Host Shootout

or: How I learned to stop worrying and love scaling Rails.

There has been an explosion in Rails hosting providers: Boxcar, Mosso, MorphLabs, EC2, Heroku, etc. To make matters even more difficult for the typical Rails developer, many of these new providers have very unique properties: scaling/clustering/cloud computing/and more. It’s no longer as simple as Shared/VPS/Dedicated.

Therefore, I have started a new pet project: Overloadr. The goal of Overloadr is to test two things:

  1. The ease of deploying a basic Rails app to a hosting provider
  2. The relative performance of ‘specialized’ hosting platforms.

To start this off, I’ve written a Rails app that can be used with ab (Apache Benchmark) to test the performance of the Rails engine and the database behind it. The project is available on GitHub, as is fashionable… Feel free to fork, contribute, etc. Eventually I may set up bug tracking, discussion groups, etc. but for now, this is what I’ve got:

http://github.com/isotopetech/overloadr

My list of prospective hosts so far is:

VPS

  • Boxcar
  • Slicehost
  • RailsMachine

Cloud

  • MediaTemple
  • MorphLabs
  • Mosso
  • Heroku

Shared

  • Phusion Mod_rails (Dreamhost?)

EC2 (Testing ease of deployment with different gems)

  • PoolParty
  • ec2onrails
  • rubyworks-ec2
  • Rubber

A Dedicated server

You can expect the first of the posts of the deployment experience and performance shortly.

Advertisements

4 comments on “Presenting Overloadr: The Great Rails Host Shootout

  1. wr0ngway says:

    Hey, glad to see someone is doing this!

    I’m the author of rubber – my goal is to make it pretty turnkey, if its not for you, feel free to drop me a line so I can fix any issues you find. Right now I’m experiencing a few bugs due to changes introduced in cap 2.3, but I should have workarounds in for all of them – cap 2.1 might be more reliable. I skipped over cap 2.2.

    The rubber quickstart should get you most of the way there for a simple rails app.
    http://github.com/wr0ngway/rubber/wikis/quick-start

    While rubber can get you up and running on a single instance, its strength lies more in how easy it makes it to add new instances into the mix when you need to scale up. I’ve also added a mysql cluster module/generator (still a work in progress) which should theoretically make db scaling just a matter of adding more instances (once I get sqlrelay setup as a db load balancer)

    Matt (wr0ngway on github and lighthouse)
    twitter mattconway

  2. mike says:

    Drew,

    how about adding Fuzed to your EC2 list?

    http://fuzed.rubyforge.org/

    It was a project started by Powerset folks and was released at Railsconf.

    More here: http://jointheconversation.org/2008/06/06/fuzed-and-ec2/

  3. Definitely shoot me a line once you have this up, so I can cover it on the Podcast.

  4. Eliot says:

    Added you to my feed reader in anticipation of your project – great idea and good luck!

Comments are closed.