What is Clustered Hosting?

Clustered hosting is the newest way of hosting your website. A cluster is a group of computers or servers, whose combined computational power provides a service.

Clustered hosting is a type of web hosting that spreads the load of hosting across multiple physical machines, or node, increasing availability and decreasing the chances of one service (e.g., FTP or email) affecting another (e.g., MySQL). Many large websites run on clustered hosting solutions, for example, large discussion forums will tend to run using multiple front-end webservers with multiple back-end database servers.

Typically, most hosting infrastructures are based on the paradigm of using a single physical machine to host multiple hosted services, including web, database, email, FTP and others. A single physical machine is not only a single point of failure, but also has finite capacity for traffic, that in practice can be troublesome for a busy website or for a website that is experiencing transient bursts in traffic.

By clustering services across multiple hardware machines and using load balancing, single points of failure can be eliminated, increasing availability of a website and other web services beyond that of ordinary single server hosting. A single server can require periodic reboots for software upgrades and the like, whereas in a clustered platform you can stagger the restarts such that the service is still available whilst still upgrading all necessary machines in the cluster.

Clustered hosting involves spreading the website across multiple servers, like layers. In the CatN stack each layer does its own individual task, so one for web, one for databases, one for logging etc. This has one considerable advantage, if one server goes down the others won’t.

On a traditional hosting server, all of the data is stored and run on a single layer, the main server. If this  server goes down, breaks, or just stops working then all of your website goes down with it. Nothing works, runs or displays. How can this be prevented? By separating hosting services across a cluster!

An obvious advantage to clustering is the even distribution of traffic across several servers, making it is less likely that a single server will go down due to overload, and improving performance as traffic is managed. Database activity is isolated from the web traffic, and so an increase in database computation has minimal effect on static content form a web server, and equally web traffic for dynamic content will have little effect on database performance.

This separation prevents errors on one section of the cluster from preventing other services. If an entire database service fails (unlikely with multiple nodes), visitors to your website will still see the static and dynamic content, but just be unable to access the database. You can use this to your advantage by displaying a notice letting them know that the database server is not functioning and to be patient while its being fixed. As you can imagine, this is a lot more informative than them seeing a 404 because the whole site has gone down from one error.

However, this separation is not infallible. If the front-end layer goes down (static and dynamic content servers), then no user info can be displayed. Its no good to the end user just having the database and back-end working when there is nothing to interact with it. Fortunately the clustered platform lends itself to stability with multiple nodes (servers) in each layer picking up the strain if single nodes fail. New nodes can replace failed units with no interruption to the service of your website.

In the CatN stack traffic is directed to the correct server using load balancing pairs and the .craccess and .htaccess files. The load balance pairs between service layers ensures even distribution of traffic, and the .craccess and .htaccess files enable requests to be passed between the static and dynamic layers in the stack.

So the low down on clustered hosting. A cluster is the group of servers that make up the website. Each of these servers has a dedicated job – database/web/email etc. If one server goes down, the others don’t go down with it.