High Availability and Redundancy
Things fail. A disk wears out, a data center loses power, a network cable gets cut, a piece of software crashes. In a big-enough system, running long enough, some component is always either failing or about to. High availability (HA) is the design goal of building systems that stay up anyway — not by preventing failures, but by tolerating them.
The trick behind high availability is redundancy: never rely on a single copy of anything critical. Run duplicates. If one copy fails, the others take over, and the people using the system never notice.
Think of a commercial plane: it has multiple engines, multiple hydraulic systems, multiple radios. Losing one engine does not end the flight, because nothing truly critical exists in only one copy. Cloud architecture works the same way.
Single Points of Failure
A single point of failure is any component whose failure takes the whole system down. One database server. One network connection. One power supply. Any of these, if it fails and has no backup, causes a complete outage.
Designing for high availability means systematically identifying every single point of failure and eliminating it — by adding a duplicate that is ready to take over the moment the primary fails. The process of switching to the backup is called failover.
Redundancy Across Availability Zones
In an earlier chapter you learned about availability zones — separate, isolated data center buildings within the same region. They share a region name but have independent power, cooling, and network connections, so a problem in one building does not affect the others.
Running copies of your system across multiple availability zones is the standard way to survive a single-building outage. If the data center in zone A loses power, the copies in zones B and C carry on. This is the most common form of redundancy in cloud deployments.
For even stronger protection, teams spread across multiple regions entirely — separate geographic areas — though this is more complex and is usually reserved for systems that cannot afford any regional outage at all.
Measuring Availability: The "Nines"
Availability is expressed as a percentage of time the system is up over a year. These percentages are called the nines, and the difference between them is larger than the numbers suggest.
99.9% availability — often called "three nines" — sounds high. But 0.1% of a year is about 8.76 hours of downtime. For a business that runs around the clock, that is a real problem: nearly nine hours offline per year.
99.99% availability — "four nines" — cuts that to roughly 52 minutes per year. Moving from three nines to four nines is not a small step; it typically requires a substantially more sophisticated redundant design.
99.999% — "five nines" — is about 5 minutes per year. This level is rare and expensive, reserved for systems where even brief downtime has serious consequences: air traffic control, financial settlement systems, emergency services.
Providers publish these targets as SLAs (service-level agreements) — contractual guarantees about uptime. When you design a system, you pick components whose SLAs match your availability requirement, and you stack redundancy on top where needed.
- "The cloud never goes down." Individual components fail constantly in any large cloud. Well-designed systems hide those failures behind redundancy. The cloud's infrastructure is resilient; your application is not automatically resilient just because it runs there.
- "Redundancy is wasteful — you're paying for machines that do nothing." Redundant machines do not do nothing — they handle real traffic in normal operation (often via load balancing), and they are the insurance that makes uptime guarantees possible. It is the price of reliability.
- "99.9% and 99.99% availability are basically the same." One means about 8.76 hours of downtime per year; the other means about 52 minutes. For a business open around the clock, that difference is significant and typically requires a very different architecture.
- Availability is what "reliable" actually means in operational terms. Understanding redundancy explains why cloud systems are spread across zones, and why the architecture diagrams you see always show multiple copies.
- Knowing the nines lets you read and compare provider SLAs intelligently — and understand why moving from 99.9% to 99.99% is a real engineering and cost step, not just a decimal place.
- For managers, high availability is a business continuity question: how much downtime per year is acceptable, and what does it cost to design against that threshold?
Knowledge Check
What is a "single point of failure"?
- A geographic region that sometimes has network connectivity problems
- The moment when a server is fully loaded and cannot take more requests
- A system design that sends all traffic through a load balancer
- Any single component whose failure is enough to bring the whole system down
What is the purpose of spreading a system across multiple availability zones?
- To take advantage of lower pricing in some zones compared to others
- To keep running even when one entire data center building has an outage
- To increase the CPU and memory available to the application
- To allow the auto-scaler to add machines without a load balancer
A system has 99.9% annual uptime. Roughly how much downtime does that mean per year?
- About 52 minutes per year
- About 4 hours per year
- About 8.76 hours per year
- About 3.6 days per year
What does "failover" mean in the context of redundancy?
- Removing extra machines when traffic drops, to reduce the bill
- Switching from a failed component to a backup that takes over
- Updating the software on a running machine without restarting it
- Copying data from one region to another for compliance purposes
You got correct