Our company sells its software through a web site that is hosted on the company's network. As the company grew, we came to find that the web server couldn't handle the load generated by the traffic on the site. The need to come up with a solution for managing the load on the server, and clustering came to mind. What considerations must be taken into account before we can attempt to configure clustering on our network? What must we do in order to analyze business and application requirements? How can we plan storage methods? How can we plan server capacity? How can we plan failover policies? Any and all help is greatly appreciated. Thanks in advance.
You could load balance your server. Commercial products exist, which as "Alteon", or you can use a product such as Apache (when used as a reverse proxy), Squid or HAProxy. In a Windows world, this can be done using ISA proxy or others.
You will basically instruct this load balancer to forward requests to a pool of web servers. This will also usually take care of failover scenario's.. as it won't forward requests to a server that is down.
If you have transactions on your webserver, and need synchronization, you might have to change certain things in your application.
There's multiple ways to increase the performance. Is your server overloaded, or is the site "slow"?
Without too much information, it's rather difficult to provide "your website can handle X hits per minute" or so. Depends on your application logic.
Hope this helps a bit.