一、SRE的核心理念与价值
SRE(Site Reliability Engineering)是运维与软件工程的交叉学科,核心目标在于:
- 量化稳定性:通过SLI/SLO定义系统可靠性目标。
- 自动化一切:减少人工干预,提升修复效率。
- 拥抱风险:通过错误预算平衡稳定性与创新速度。
二、SLI/SLO设计:从指标到服务承诺
1. 关键概念解析
- SLI(Service Level Indicator):衡量服务健康度的指标(如请求成功率、延迟)。
- SLO(Service Level Objective):SLI的目标阈值(如99.9%请求延迟<200ms)。
- SLA(Service Level Agreement):对客户承诺的SLO,具有法律效力。
2. 设计原则与实战案例
场景:为电商API网关设计SLO。
- SLI选择:
- 请求成功率(HTTP 200/总请求数)。
- P95延迟(95%的请求响应时间)。
- SLO定义:
- 月度请求成功率 ≥ 99.95%。
- 月度P95延迟 ≤ 300ms。
- 错误预算:允许的不可靠时间 = 30天 × (1 - 0.9995) ≈ 21.6分钟。
3. Prometheus监控SLO达成率
# 计算过去30天请求成功率
sum_over_time(
rate(http_requests_total{status!~"5.."}[5m])[30d:]
) /
sum_over_time(
rate(http_requests_total[5m])[30d:]
)
三、错误预算管理:平衡稳定与创新
1. 预算消耗策略
- 预算耗尽时:冻结新功能发布,专注稳定性修复。
- 预算充足时:允许激进迭代,加速业务创新。
2. 可视化工具(Google Cloud SLI/SLO Dashboard)
apiVersion: sre.google.com/v1
kind: SLO
metadata: