It seems a little absurd to suggest that we all need to be concerned with
the infrastructure that twitter (one of the most frequented sites on the
web) needs to make a decision on what kind of infrastructure we need to run
90% of all other web applications. We could suggest that we need a space
shuttle to go to work in the morning, but unless your commute takes you to
low orbit, maybe it is better, more convenient, and more enjoyable to drive
a car. At my office, we have many rails apps running and usually only need
2, or at most 4 thin (its a competing server to mongrel) instances to manage
the traffic to the app. This includes many heavy server requests, like pdf
generation, data synchronization, and complex queries with 5 million or so
records. We use a standard mysql database with redundant writes to two
instances for data security. This mysql database manages 5 fairly heavily
used apps with significant public health information for state agencies and
managing mission critical applications for the agencies. Finally with
services like Heroku and the EngineYard Cloud services, scaling is really
just a matter of moving a toggle on a web interface. In a vast degree of
situations, platform as a service totally mitigates the hardware hurdle and
would be the direction I would aim most parties interested in scaling their
app in the future. But it seems for most projects, scaling means moving the
app to a more performant vps, or dedicating a mysql server, or choosing a
different persistence layer all together. It rarely employs the strategies
that a site like Twitter needs to manage millions of requests per second.

www.heroku.com, if you are interested.

In the end it all comes down to deciding what you need for your app, but
unless you really need all the overhead of database sharding, and the other
topics discussed in this thread, the real question comes down to which tool
you are going to love using. I love writing Ruby, I enjoy the productivity I
get from using Rails, I cringe at the though of writing 'public static void
main'. But I have to say, the JVM rules, which is why I'm glad clojure
exists! Consider that it would be ridiculous to write a blog app in rails
when there is wordpress. In the same vein, it is silly to consider a huge
app footprint and hardware setup cost if it is not necessary to meet the
business objective.

I would start by employing YAGNI (You Ain't Gonna Need It)

Jed

Reply via email to