Reliability is the ability of a system to work correctly and consistently over time.
A reliable system:
Reliability is a key part of Site Reliability Engineering (SRE).
Availability shows how often a system is operational and accessible.
textAvailability = Uptime / Total Time
Typical availability levels:
| Availability | Downtime per year |
|---|---|
| 99% | ~3.65 days |
| 99.9% | ~8.76 hours |
| 99.99% | ~52 minutes |
| 99.999% | ~5 minutes |
Higher availability means less downtime.
Average time needed to recover from a failure.
textMTTR = Total Repair Time / Number of Incidents
Lower MTTR means the system recovers faster.
Average time a system runs without failure.
textMTBF = Total Uptime / Number of Failures
Higher MTBF means the system fails less often.
Percentage of requests that fail or return errors.
textError Rate = Failed Requests / Total Requests
Example:
Latency is the time it takes for the system to respond.
Common percentiles:
Example:
codep50 = 40ms p95 = 120ms p99 = 400ms
Google SRE recommends monitoring four key signals:
These signals help detect problems quickly.
These concepts define service reliability goals.
SLI (Service Level Indicator) A metric that measures service performance.
Examples:
SLO (Service Level Objective) A target value for an SLI.
Example:
99.9% of requests respond in < 200ms
SLA (Service Level Agreement) A formal agreement with users or customers.
Example:
Service availability ≥ 99.95%
If the SLA is not met, compensation may apply.
An error budget defines how much failure is acceptable.
Error Budget = 1 − SLO
Example:
codeSLO = 99.9% Error Budget = 0.1%
Teams can use this budget to balance:
Common practices to improve reliability:
Monitoring
Redundancy
Fault Tolerance
Incident Management
A reliable system should:
Core concepts: