“dot mac” (CC BY-ND 2.0) by aburt
As users increasingly rely on durable online systems and web apps, businesses are under growing pressure to introduce reliable, high-performing infrastructures to serve those systems and services. As an organization’s online services grow in popularity, reducing individual points of failure is equally important as coping with heightened system loads.
Availability is a means of measuring the performance of an infrastructure to address single failures and maintain consistent operational performance. A system’s availability is often described in percentage terms, to outline the length of time a system should be reasonably expected to perform. For instance, a system which offers 100% availability would suggest the system will never be offline throughout a year of use. For a system to fall to 99% availability, it would be required to have 3.65 days of downtime a year on average.
High availability is most critical when a service or organisation operates a service which relies upon consistent operation, without frustrating interruption. By implementing a high availability infrastructure, online businesses can minimize the risk of downtime and, should the worst happen, recover automatically in the event of a component or server error.
Image: Pixabay
Eradicating single points of failure within an online infrastructure is one of the key aims of high availability. An individual point of failure relates to a specific element within your infrastructure that would create instant service disruption were it to fail or become unavailable. To remove the threat of an individual point of failure, each layer within your infrastructure must be readied for redundancy – for example, an infrastructure including two of the same redundant web servers behind a load balancer. All visitors to your online service will be funnelled equally between the two web servers, but should one of them fail, the load balancer will automatically port all new visitors to the single performing server.
For any online system to operate at high availability, the following dependable components are required:
- Hardware should be robust and resilient to the threat of power failures and data loss from hard disks and network interfaces
- Data safety should be paramount should a system failure occur
- The software of your online application and its operating system should be capable of quickly restarting in the event of a single point of failure
- A well-considered strategy for server locations would avoid taking your entire online system down by utilizing servers in data centers in various regions to avoid the threat of environmental damage
- Highly available systems should have a plan in place for redundant networks should unplanned outages occur
At every layer of a highly available online system, you will require different components in terms of software and configuration. At the top end of the application itself, load balancing software is vital to any high availability system. High Availability Proxy, also known as HAProxy, is an increasingly popular piece of load balancing software, capable of load balancing at network and application layers of your infrastructure, maintaining a consistent speed and performance by distributing workload throughout several web servers. HAProxy is also highly configurable as it can operate on three key operating systems (Solaris, Linux and FreeBSD).
The overall implementation of high availability infrastructure may seem somewhat confusing. However, there is no denying that the rewards for online systems that offer users such high percentages of operational performance are well worth the meticulous strategy necessary for it to work, both in terms of monetary and reputational value.