parent: Systems Design
Availability: The guarantee that the system always runs well, regardless of what happens to the nodes behind the scenes.
Availability = system uptime
The formula for availability is actual uptime / expected uptime.
expected uptime = 24*operationaldays
availability% = (uptime - downtime) / expected uptimeThe golden standard for availability in the industry is “The five 9’s” which is 99.999% availability (only 5m downtime/year!). Achieving this number should be the goal for all architects creating a highly available system.
Other availability numbers: Four 9’s (99.99%) = 52m downtime/year Three 9’s (99.9%) = 8h 45m downtime/year
although not all systems should have availablity as their main goal, read CAP Theorem
You create a highly available system by implementing redundancy, fail-overs, or graceful degradation. The point being, any degradation of individual nodes in a system should not compromise the system in its entirety.
You can achieve high availability by implementing the following principles:
- Faul-tolerance
- Reliability
- System Resiliency Learn more in Availability Patterns
Related:
Systems Design High Level Tradeoffs