What is High Availability?
High Availability (HA) is a significant feature of a reliable hosting architecture. For businesses with high-profile websites that encounter large numbers of traffic, HA is a necessity. Downtime can damage a business’s reputation as well as having financial repercussions, so it is critical to avoid any disruption to normal service.
Why is HA important?
HA is critical for businesses because it ensures that their website will remain online in the event of a hardware failure, or due to scheduled maintenance.
- Reliability: HA means that in the event of a failure, such as a hardware fault, a website will operate continuously without error.
- Maintenance: When running a business online, it is vital that your website does not go down, as even one minute of downtime can cause major repercussions. Yet at the same time, websites require continuous updates and maintenance to keep them up and running properly. Using HA will allow you to carry out maintenance or updates to your website, without encountering any downtime at all.
'High Availability is a must have for any business looking to stay online all the time. E-shops, gambling sites, and critical online SaaS products should all make use of High Availability.' - Oliver Ward, Head of Strategy
How does HA work?
To setup HA you need to run a minimum of two servers, but to achieve top performance, it is beneficial to run four. Two servers will be dedicated to your Web/ Application traffic, and two will be dedicated to your database with a failover setup between them.
HA on dedicated servers means that there is more than one node of your website running on the server. If one node stops running, the other nodes will keep your website running, processing and handling requests.
HA is achieved by using load balancers to share traffic across several servers to keep the front end running, and using MS SQL clustering or MySQL replication to keep the databases online in the event of a failure.
The front end of a website requires load balancers to achieve HA. Load balancers are used to distribute traffic intelligently across two or more dedicated servers. There are multiple methods that load balancers can use to direct traffic across the servers. The most common method is ‘least connections,’ where the load balancer directs traffic to the least populated server. Load balancers ensure HA in the following situations:
- Hardware failure: If one of your servers fails due to a fault with the hardware, the load balancer will redirect the incoming traffic to a server that is online.
- Maintenance: If it is necessary to take a server offline to carry out scheduled maintenance, the load balancer will redirect all traffic to the server(s) that is available. This prevents any downtime and ensures HA.
MySQL replication and MS SQL clustering
Using load balancers to direct traffic between different servers will ensure the front end of your website will not go offline, however it is also necessary to ensure your database will not fail.
If Linux is running, HA is achieved using MySQL replication. If Windows is running, HA will be achieved using MS SQL clustering.
Replication is a method for duplicating and sharing data (and database objects) across multiple databases. It lets you access all the data for the SQL Server instance from any node you want. This is done by setting up a replication job between the primary (master) database and the secondary (slave) database.
In the event of a failure, the secondary database will be taken over from the primary database, keeping all systems online. This can be done manually, or you can code your application to failover automatically so that the transition is seamless.
MS SQL clustering
Clustering is the technology that automatically allows one server to take over the tasks and responsibilities of another server in the event that it has failed. This method requires a shared storage pool (SAN) where your data is kept. In this case, a Database Cluster is set up.
Clustering is the process of installing more than one SQL server node into a cluster. This means that all data can be accessed from any of the nodes in a cluster, so if one node is experiencing issues, you can seamlessly switch to a different node on the cluster. MS SQL detects when one of the databases goes down, and automatically fails over.
Insights related to Blog
With ever-changing financial and commercial buying decisions, what role will the cloud play as enterprises look to reduce their energy spending and emissions?Read our insight
In an attempt to combat some of this confusion, we thought it was best to take a look at two core security elements; high…Read our insight
- On-premise to the cloud: A remedy to the energy crisis?
- Over 1/3 of UK consumers wouldn’t wait longer than 30 seconds on an unresponsive website before switching to a competitor
- High Availability vs Disaster Recovery: What’s the Difference?
- 5 ways to ensure the reliability of your IT infrastructure
- Exec Q&A with Jake Madders of Hyve Managed Hosting