One of the mainstays of our hosting business is the service and support of high usage PHP-MySQL applications. There are many ways to support these types of environments. One of the ways that we are assisting our customers is by providing implementation of server clustering. Server clustering provides both fault tolerance and greater scalability to hosting environments.

Very few websites start out needed a fully clustered solution. Most customers start on the low end and grow their environment as needed. The route most people take is as follows:

  1. Shared Web Hosting
  2. VPS Hosting
  3. Dedicated Server
  4. 2 Server Cluster
  5. Load Balanced Server Cluster

While this is by no means an exhaustive list, it does show the progression to more complicated solutions.

As mentioned earlier, there are a couple different reasons to look to clustering.  Primarily we will focus on solving the performance problems in this issue.  Once a site has outgrown a single server solution, multiple servers must be employed to provide for further grown.  If the website is a simple html/php site with no database access, multiple web servers will suffice.  However, most modern websites are dynamic, database-driven sites.  The simplest method for clustering is to separate the database function from the web serving function.  It is also important to ensure a high speed connection between the database server and web server.

The dual server cluster is often enough for many sites, but again, there are some sites that will need more resources available to them.   At this point, it is important to have an experienced administrator audit the server to see where the bottlenecks are occurring.   Depending upon the outcome of this analysis, additional servers may be needed in either role, web or database servers.