High availability is a characteristic of a system, which aims to ensure an agreed level of operational performance, usually uptime, for a higher than normal period. Achieving high availability often involves putting in place redundancies throughout the system. For example, if a component fails, the system can switch to a redundant component, without any interruption in service.
IT systems are increasingly mission critical and are expected to be available 24 hours a day, 7 days a week. However, no matter how well a system is designed and built, components will inevitably fail at some point. The key to achieving high availability is to design the system so that it can tolerate component failures without interruption to service.
There are many factors to consider when designing for high availability, including:
Redundant hardware components are a key part of achieving high availability. For example, if a server fails, the system can switch to a redundant server.
Common redundant hardware components include:
The software components of a system also need to be designed for high availability. For example, the application should be designed to handle server failures gracefully.
Common software techniques for achieving high availability include:
In addition to the hardware and software components, the processes of a system also need to be designed for high availability. For example, the system should be monitored so that any component failures can be detected and remediated quickly.
Common processes for achieving high availability include:
Achieving high availability is a key goal of IT systems. There are many factors to consider when designing for high availability, including hardware, software, and processes.