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.

Excellent. Thanks for the link, great stuff!
Is there any place with the associated audio from the presentation?
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.
Another good presentation can be found at: http://www.slideshare.net/Georgio_1999/how-to-scale-your-web-app
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.
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.
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.
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.
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.