Load Balancing and Clustered Dedicated Server Architecture Considerations
This article discusses a few of the factors that should be considered when looking to achieve maximum availability from your hosted online application. For more general discussion of hardware considerations, see also our Dedicated server purchasing guide.
We'll consider three different configuration options:
- Single server configuration covering all applications (Eg web server, mail server, database server).
- Multiple server configuration split based on server function - eg separate physical host for web server and database server.
- Mutiple server configuration with load balanced/high availability configuration across servers, each performing the same functions.
Multiple server configurations with load balancing
Provisioning multiple servers with a load balancing function can permit increased levels of availability by increased level of redundancy. Aside from failure scenarios, load balanced server configurations allow applications to remain online during mandatory scheduled outages such as application of security patches and operating system updates.
Careful consideration must be given to the use of load balanced configurations however. Implementation is not the sole responsibility of the web hosting provider. The application itself must have the capacity to be distributed across servers and this will often require significant consideration and time during application development phases.
A load balanced solution is inherently more complex than a single node configuration and as a result introduces additional complexities. These additional complexities can easily themselves become a source of increased application outages.
In summary a load balanced configuration can ultimately afford greater levels of uptime, but it must be accompanied by the corresponding investment in application development and expertise required to manage this more complex configuration.
Multiple server configuration with split based on server function
This involves provisioning multiple servers each with its own function. For example, one server for the web server and a second server for the database server.
This configuration is suitable when the load generated by the application to be hosted is simply too high for a single server to accommodate.
It can be a preferred configuration to a load balanced arrangement because it still maintains the simplicity of single server configurations.
Single server configurations
By far the most commonly deployed server configuration. Whilst it may appear like an entry level configuration, in reality for most online applications can adequately provide a sufficient level of uptime.
Single server configurations can be equipped internally with redundancies including dual hotswap power suppliers and redundant drive arrays. Single server configurations can also be equipped with very high levels of hardware to meet the most demanding loads - easily adopting 8 CPU cores, 30+ GB of RAM, 8 high speed SAS hard discs.
Your hosting provider should have an array of hardware onside to allow for rapid replacement of components in the event of failure.
In reality - the gains in availability from the simplicity of this configuration can often offset many of the risks of downtime due to hardware failure.