Scalability with Ruby on Rails
Much have been said about the scalability of Ruby on Rails, given the amount of “magic” that it is providing to lazy programmers like myself.
I have been asked numerous times about scalability when trying to preach Ruby on Rails as a technology of choice to build new web applications.
For those who have been seeking the answer, I would like to take this opportunity to point you to a blog written by Jeremy Thomas (whom I have made a number of references throughout my blog) on the issue. In fact, I will directly paste this statement on RoR’s ability to scale from the original creator, David Heinemeier.
I’ve said it before, but it bears repeating: There’s nothing interesting about how Ruby on Rails scales. We’ve gone the easy route and merely followed what makes Yahoo!, LiveJournal, and other high-profile LAMP stacks scale high and mighty. Take state out of the application servers and push it to database/memcached/shared network drive (that’s the whole Shared Nothing thang). Use load balancers between your tiers, so you have load balancers -> web servers -> load balancers -> app servers -> load balancers -> database/memcached/shared network drive servers. (Past the entry point, load balancers can just be software, like haproxy). In a setup like that, you can add almost any number of web and app servers without changing a thing.
Jeremy also made a very good point about the volume that will hit an Enterprise server Vs Consumer Web server. Read his blog post here.
Discussion Area - Leave a Comment