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.

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." http://www.paulgraham.com/avg.html

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.

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.

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!

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

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?

Heri R> wrote:

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