Scalability: numerous servers vs. powerful servers

Since this is somewhat of an opinion-based topic, I'll speak from my own experience. Downtime where I am at is greatly frowned upon - because of this I also favor using redundant, smaller servers.

In addition to reducing downtime, this will help you if you need added capacity - you've already forced yourself to think about scaling and as a result can just tack on added machines as needed.

The two most difficult areas to scale (in my opinion) are the database and file storage. If you can solve these two issues then I see no reason why smaller servers wouldn't suffice and in fact be beneficial.

I have had success running a centralized NFS store over a backend gigabit network on a RAID5 server w/ high speed SCSI disks. The database replication I have been toying with has been MySQL's clustering.


Doing synchronous replication via the clustering in MySQL 5.1.

I do not see high loads at all - however our applications are very low on inserts. (no less than 99% of SQL commands are SELECTS).

The database servers talk on their own gigabit VLAN and have a load balancer in front of them that gives a unified IP for the applications to hit.


Here's a great PDF on MySQL HA solutions...