The most important observation in all of this is that it is possible to spend vast amounts of money improving cluster hardware and uptime, and yet be doing very little to solve the actual problem (being that of your user's experience).
Therefore before even considering buying hardware or implementing a cluster, make sure you have a good grasp on what you're trying to achieve (and whether you can also make service affecting improvements in other areas--like the design of the service client).