What Is High Availability?

High availability

AWS defines availability as “A system that is available is capable of delivering the designed functionality at a given point in time. Highly available systems are those that can withstand some measure of degradation while still remaining available.” 6^6

While scalability focuses on an amount of something to handle, availability is concerned with if functionality is delivered at all. Although both play hand in hand, availability should be a separate concern and might require different approaches to our architecture.

Example 1: Stack Overflow databases

To make this concept less abstract, let’s consider Stack Overflow again. They are running their website with only one active database, so how do they handle high availability?

The answer is in their hot standby databases. They can quickly switch over to the standby database if the main database fails and therefore can continue to deliver to their users. This is an example of a high availability implementation that is distinct from scalability.

Example 2: Stack Overflow web servers

Stack Overflow’s web servers work differently. If one of their nine web servers fails, there are no hot standby servers to replace them. Because they use a scalable architecture, the remaining eight web servers can take over the load of the failed server. In this case, they have achieved high availability through scalability.

Get hands-on with 1200+ tech skills courses.