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.