1

Specifically I'm looking for techniques for scaling a web application which has no central database server, in the cloud, but general advice is great.

I have come across GlusterFS, which looks great, but I'm not yet clear how it fits into the architecture of a web application. This also is interesting to me.

Thanks for the advice and links.

2 Answers 2

1

Of the top of my head I would look at Amazons SimpleDB beeing that you are in the aws ecosystem already. But its hard to say without more information about your application than its just "a web application".

2
  • Amazon's SimpleDB is frightfully expensive. I used it for about 10 hours one night, and discovered that they'd billed me for $50 of usage!? Apr 11, 2010 at 7:31
  • Thanks, I was hoping for more general discussion about this topic so I didn't include much info about our app. But since no one seems interested... we are a google-docs-style application and (at the moment) are storing user data in individual directories, each with an sqlite DB. We do this because our system will be both on and offline, and users can down/upload their data in this form.
    – jberryman
    Apr 12, 2010 at 2:15
1

You could use Elastic Load Balancing http://aws.amazon.com/elasticloadbalancing/ to load balance a couple of nginex web server, then two or three application servers with Thin (http://code.macournoyer.com/thin/) configured as a cluster. As Cloud DBMS you could use RDS, which is Amazon offer for MySql. You can share the sessions but using AR session storage or by using memchaced.

Thin is an application server for Ruby, but you can substitute Thin with Apache + mod_php, Tomcat or whatever.

The application servers should mount a clustered file system, such as GlusterFS, were you should put your code (the same code for any server).

Then using the command line tool of Amazon you can configure when the servers new instances should be created, for instance when a server reach the 70% of CPU usage.

You could use Varnish for static caching, installed in the same instance of the web server or using its own instance (better).

There are lot's of solutions, although the easiest one is to use Heroku.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .