lesscode.org


How to slay this cow?  

By Ryan Tomayko under Then they laugh at you..., Rails on 12. July 2005

This Joel on Software Thread shows that the notion that “LAMP can’t scale” is alive and, apparently, still quite popular.

The big issue I have with rails scalability is admittedly based on some prejudices I have about large scale webapps. Rails doesn’t really have a model of a stateful server, primarily because there is no threading, connection pooling, etc. You have one lighthttpd/apache/whatever thread, and it has one rails instance, which has one db connection, etc.

Oh, wait, that comment is just plain old disinformation and/or ignorance of how these systems actually work.

This comment does a far better job of representing the popular your-stuff-doesn’t-scale mindset:

scalability is an important issue when choosing a development environment. If it is not scalable, you made the wrong decision and you will be rewriting your app into something that is scalable once you start getting customers. And this is just the wrong time to have to start worrying about rewriting your app. It is always better/cheaper/faster to do it right the first time rather than plan for a rewrite in a new environment once you start getting busy.

Required until proven unnecessary in all its glory.

David has a nice rebuttal that sums up nicely the place I think many of us have reached with regards to the scaling issue: it’s a boring problem that’s been solved for years. Maybe we should tell others?

Along with the usual set of “that’s not for the enterprise” posts, there are also some insightful posts. I’d encourage you to join the discussion, especially if you have a cluestick similar to Ged Byrne’s:

I think I should start posting on all those enterprise server forums with comments like ‘I’m concerned that this won’t scale down very well. Could a team of 3 provide 24/7 support while extending functionality? We only have a couple of thousand users and at the rate the market will accept a bigger team would not be economical. The thing is, we 3 really want to do this rather than ending up as corporate drones wasting our existance in a cubicle.”

Anyway, here’s something IBM/Zend or other members of our community toating around a fair amount of spare cash and resources could do to help the poor hippies out in gaining a bit of acceptance: slay this cow once and for all, formally, by setting up an environment to simulate the kinds of “enterprise class” loads we’re seeing in even the most demanding environments. You can use David’s basic setup or perhaps this one from circa 2000. If, upon being weighed we’re found wanting, we’ll find a way to fix it like we’ve been doing forever. But we would feel more comfortable if the burden of proof was placed appropriately. Our repeated attempts to show the scaling capabilities of LAMP/friends seem destined to be repeatedly deflected by the Enterprise Class Distortion Field.

3 Responses to “How to slay this cow?”

  1. Curt Hibbs:

    DHH just posted a long rebuttal discrediting the arguments that Rails does not scale. I highly recommend reading it.

    I also just posted a response to that discussion because I believe that they are completely missing the point. Here is what I posted:

    > Not only do I agree with DHH that web app scalability is a non-issue with Rails, but I also think that you’ve been addressing the wrong scalability question.

    > The important question is do programmers scale? Can ten programmers do ten times the work of one programmer? Most of us are aware that there is clear evidence that programmers do not scale.

    > From this perspective, Rails scales spectacularly better than the alternatives by boosting programmer productivity.

    comment at 12. July 2005

  2. stephen ogrady:

    for an enlightened Java guy’s take on it, see Matt Raible’s post here. very rational and clearheaded:

    http://raibledesigns.com/page/rd?anchor=scaling_with_rails

    comment at 12. July 2005

  3. Ben Finney:

    > Required until proven unnecessary

    I’m sure the A element on the above is meant to go somewhere interesting; instead it just leads to the same page I’m looking at.

    comment at 13. July 2005