Scalability and Possiblity

I’m not sure this is the appropriate community to get objective
unbiased feedback on this issue, but I suppose it’s worth a gander…
Here’s my question:

Is it possible to write a massively scalable application intented for
millions of users (i.e. Yahoo, Google, MySpace, etc.) using Ruby on
Rails?

I’m sure apps like these can be built, but can they scale to support a
huge community? Are there any case studies of massive sites built
using ROR?

Thanks for you insights.

On Sep 23, 2006, at 10:45 AM, gregor wrote:

Is it possible to write a massively scalable application intented for
millions of users (i.e. Yahoo, Google, MySpace, etc.) using Ruby on
Rails?

Yes, you can write applications like this in Ruby on Rails.

There are aspects of Rails that might make it a bit more expensive to
scale to that level, but there are aspects of Rails that might allow
you to get there sooner, which saves money too.

I’m sure apps like these can be built, but can they scale to support a
huge community? Are there any case studies of massive sites built
using ROR?

I don’t believe anyone currently has an Rails site that large yet.

penny-arcade.com is Alexa 1,600 and pitchforkmedia.com is Alexa 3,700

I’m sure there are other examples, perhaps larger.


– Tom M.

43things.com has 605,054 users
that’s the largest RoR website i can think of


Heri R.
http://sprinj.com

At ChaCha, we use RubyOnRails for the ChaCha Underground. It is not
used as a primary part of the search engine, but to power the community
of guides. We get a relatively large amount of traffic and handle it
quite well.

The key to great performance, as the people at the Robot Coop know, is
to cache. This can be quite challenging for community sites, where
every user gets a unique experience, but it is possible.

Another important step is to make sure that non-cached queries are as
optimized as possible. This means using eager loading, and in some
cases, custom queries to reduce the necessary communication between
Rails and the database.

Gregg

On Sat, 23 Sep 2006 10:45:44 -0700
“gregor” [email protected] wrote:

I’m not sure this is the appropriate community to get objective
unbiased feedback on this issue, but I suppose it’s worth a gander…
Here’s my question:

Hehe, yeah, like you get it from any other community. That’s usually
why I tell people to do their own analysis and don’t believe anything
anyone tells you (even me).

If you’re looking to do an analysis of what might be possible then check
out PDQ. It’s pretty decent, but only perl and python bindings. Has an
OK book but the copy I bought had about 40 blank pages due to a printing
defect and it’s kind of dense (seems nobody can write about performance
in a simple way).

http://www.perfdynamics.com/iBook/ppa_new.html
http://www.perfdynamics.com/Tools/PDQperl.html

Is it possible to write a massively scalable application intented for
millions of users (i.e. Yahoo, Google, MySpace, etc.) using Ruby on
Rails?

The unbiased answer is “no”. But, do you think those companies use just
one language and platform? What you’ll find is the exact technology mix
of these companies is considered a trade secret, but that all of them
uses a mix of hardware and software in order to reach their goals. Even
the great language zealot Paul Graham admitted that they used C in part
of their Lisp system:

“[1] Viaweb at first had two parts: the editor, written in Lisp, which
people used to build their sites, and the ordering system, written in C,
which handled orders. The first version was mostly Lisp, because the
ordering system was small. Later we added two more modules, an image
generator written in C, and a back-office manager written mostly in
Perl.” Beating the Averages

So no, you can’t do a massively scalable system of any kind in any
single language. It’s just not practical because no language or tool is
perfect for every job, and the idiots who try to use one language for
everything are the ones who will make sure you never reach your goals.

I’m sure apps like these can be built, but can they scale to support a
huge community? Are there any case studies of massive sites built
using ROR?

Now, this brings me to another point I’d like to make: you are
confusing “scalability” with “performance”. I think of performance as
what a particular deployed system in a particular configuration can do.
Scalability is the difficulty or ease of changing this situation to
something more or less capable. Yes, sometimes you want to scale
back, just like google did with their appliances.

It’s possible to scale anything to any levels–just buy more hardware
like google did (what 200k machines now?). The real question about
scalability is how difficult this is and what it costs. Scalability is
more about economics, with risk problems, resource efficiency, etc.

The question you really should be asking is: “Has anyone had to scale
their site from nothing to a large scale deployment with RoR and how
difficult was this? Also, did you just use Rails or are you mixing it
up?” That’d probably give you a better sense of the effort and expense
involved.

Hope that helps.


Zed A. Shaw, MUDCRAP-CE Master Black Belt Sifu

http://mongrel.rubyforge.org/
http://www.lingr.com/room/3yXhqKbfPy8 – Come get help.

On Sep 23, 2006, at 11:36 AM, Zed A. Shaw wrote:

snip…

I’m sure apps like these can be built, but can they scale to
support a
huge community? Are there any case studies of massive sites built
using ROR?

snip…

The question you really should be asking is: “Has anyone had to
scale their site from nothing to a large scale deployment with RoR
and how difficult was this? Also, did you just use Rails or are you
mixing it up?” That’d probably give you a better sense of the
effort and expense involved.

Really, really, really good answer, Zed!


– Tom M.

Thanks everyone for the good info.

Heri R: Do you know what type and quantity of hardware 43things.com
utilizes to support 600,000+ users?