CONCEPT SHEET · Concepts

Availability and the Nines

One-liner: Availability is the fraction of time a system serves correctly; each extra nine is 10x less downtime and roughly 10x more cost.

ArticleConcepts© Arthur Bernier Jr528 words1 code block

Say this#

How it works#

TEXT
Serial dependencies multiply:   A(0.999) -> B(0.999)  = 0.998   (worse)Parallel redundancy:            1 - (1-0.999)^2       = 0.999999 (better)
  1. Define SLIs from the user's view (request success, latency), not CPU.
  2. Set SLO below SLA; the gap is your safety margin.
  3. Remove SPOFs: redundant LBs, multi-AZ DB with automatic failover, multiple app instances.
  4. Detect fast (health checks, heartbeats), fail over fast (DNS TTL low, VIP move, leader election via etcd/Zookeeper/Consul).
  5. Spend the error budget on deploys; freeze when exhausted.

Active-passive: standby idle, promoted on failure; risk of stale replica and split brain. Active-active: all nodes serve; needs conflict handling or stateless nodes.

Trade-offs#

ChoiceProCon
Active-passiveSimple, no conflictsIdle capacity; failover delay; possible data loss if async
Active-activeFull use of capacity, instant failoverConflict resolution, data sync complexity
Multi-AZSurvives datacenter failureCross-AZ latency (~1-2 ms) and transfer cost
Multi-regionSurvives region failureReplication lag, much higher complexity/cost
Chasing more ninesHappier usersEach nine ~10x cost and ops burden

Numbers#

AvailabilityDowntime / yearDowntime / month
99%3.65 days7.3 h
99.9%8.76 h43.8 min
99.95%4.38 h21.9 min
99.99%52.6 min4.38 min
99.999%5.26 min26.3 s
  • Two 99.9% services in series ≈ 99.8%. Two 99.9% in parallel ≈ 99.9999%.
  • S3 designed for 99.99% availability, 99.999999999% (11 nines) durability.

In the interview#

See also