Designing scalable architectures

Posted by David September 25, 2007 @ 06:25 PM

Jason Hoffman from Joyent had a great tutorial at RailsConf Europe on Scaling a Rails Application from the Bottom Up. It defines the key terms and measurements of scaling and explains why scaling in essence have nothing to do with Rails. It’s a great story to have in hand when the inevitable fudzy “But does it scale?” nonsense is thrown at you.

Now you can get all of Jason’s slides from the tutorial.

9 comments

Comments

  1. Josh on 25 Sep 20:00:

    Excellent. Thanks for the link, great stuff!

  2. Steve on 25 Sep 20:54:

    Is there any place with the associated audio from the presentation?

  3. Andre on 25 Sep 20:56:

    Yeah, I dunno. I use RoR for our website, so don’t get the wrong idea that way…

    But I just quit Joyent/Textdrive/Strongspace last week because I had three or four months of dirt slow service. Not sure how much advice I want from them.

  4. George Palmer on 26 Sep 08:18:

    Another good presentation can be found at: http://www.slideshare.net/Georgio_1999/how-to-scale-your-web-app

  5. John on 27 Sep 20:32:

    Yeah, like Andre, I don’t want to be misunderstood, I do most of my development in Rails and love it.

    But I wish the Rails luminaries would stop dismissing scaling concerns as fudzy or irrelevant. Ruby is slow compared to other languages. Not everyone has the resources to throw hardware at an app until it’s performant. Scaling and performance are legit concerns and shouldn’t be dismissed.

  6. DHH on 28 Sep 00:40:

    John, the fudzy parts come in when people can’t separate performance (how many requests per second on given hardware) from scalability (can I throw 10 boxes after it and get 10x more performance). Rails has never had a scalability problem (nor does most anything else in the LAMP stack).

    Ruby (and thus Rails) doesn’t have good enough performance for all applications imaginable. But neither does anything but Assembler. It’s a sliding scale. And yes, your application might fall into a spot on that scale where you’re not willing to pay for how much it would cost to produce the desired output.

    Thankfully, the vast majority of all web applications do not fall into that category. They do not require crazy performance to be profitable. But everyone wants to think that they’re writing the next Google and that they’ll need 10/10ths performance to be able to make it. Without considering what you give up to get that.

  7. none on 28 Sep 08:14:

    i think part of the concern is how to scale a rails app once you reach the point that you need a larger backend while still maintaining the abstraction provided by the rails interface. much of the scaling infrastructure has been handled for other frameworks and can be applied where it overlaps with rails, but the problem shouldn’t be ignored for rails.

  8. Solomon Grundy on 28 Sep 15:49:

    What a bunch of bunk! There are 2 parts to the question of scalability. Vertical and horizontal…

    With rails you have no choice but to scale horizontally because it’s not capable of maximizing the throughput of the box it sits on.

    So does it scale? Yes but you need to spend much more money than you would with a truly scalable architecture.

  9. Nathaniel on 30 Sep 07:22:

    I get this question asked constantly and consistently answer the same way, it’s not rails problem. Caching servers are another thing not mentioned in here, Squid (http://www.squid-cache.org/) is a perfect example of this and works extremely well in past implementations for me.

    Thanks for posting the link, I have been torn with going with RHEL and is nice to hear Joyent has moved to Solaris.

    Learned a lot in these slides. Thanks again.