I got an email this morning with an interesting question:
I'm about to set up a web site. I'm curious as to your experiences. To start, I'm going to run with two machines: a firewall machine, and a main processing machine. The main processing machine will have my Postgres database, as well as my Wave app. Eventually, if I get some traffic volume, I'll move the wave stuff to a separate box.
My question is, how many wave images should I run? Should I just run one, and let all requests go there? Or should I run multiple smaller images, and let a Load Balancer manage them?
The main processing machine will have 1.5 GB of memory in it.
By way of answering, I pointed out how this site is set up. We run two Smalltalk images:
- The Cincom Smalltalk Wiki runs in one image
- Everything else runs in the second - this blog, the survey, and the NC Registration Application.
That second image runs a few other administrative applications, plus a few ad-hoc apps that run from time to time. I started with a single image; I split out the Wiki last year, mostly because the Wiki was a stable app (the code rarely changes) - while I muck with the blog code on a regular basis. I figured that the Wiki shouldn't be affected by my periodic tinkering. Thus far, this all scales fine - we certainly aren't a huge site, but we get a decent amount of traffic. There's always download activity for CST NC, for instance.
So ultimately, I advised the person who sent the email to start with one image - it's simple, and will likely scale for quite some time that way. Over time, that might change based on usage patterns - but there's no reason to set up a complex system right from the get go, IMHO.