第二章 SRE核心概念与SLI/SLO高频问答

本章聚焦面试中必考的SLI/SLO、错误预算、可用性计算等核心概念。掌握回答框架,能帮你系统展示SRE思维而非零散经验。以下先给出答题路径图,再通过3个典型问答拆解考察点与应对模板。

SLI/SLO 面试回答框架图 定义核心SLI 设定SLO目标 计算错误预算 监控与告警 迭代优化 反馈闭环 / 持续改进 错误预算 = 1 - SLO
📌 知识速查表:SRE关键概念对比
概念 定义 常见指标示例 面试考点
SLI (Service Level Indicator) 服务实际测量指标 请求延迟P99、错误率 如何选择有效SLI
SLO (Service Level Objective) 目标值或范围 P99 ≤ 200ms, 错误率 ≤ 0.1% 如何设定合理目标
错误预算 (Error Budget) 可允许的不可用时间 / 请求比例 SLO=99.9% → 日错误预算 = 86.4秒 预算耗尽后的决策逻辑
可用性 (Availability) 成功请求占比 / 正常运行时间比 (总请求-失败)/总请求 计算公式与多维度计算

🎯 面试问答一:请解释SLI和SLO的区别,你们团队如何确定SLI?

面试官考察点:对SRE基础概念的掌握、指标选择方法论、业务理解深度。

回答框架:

  1. 明确定义:SLI是测量指标,SLO是目标值。
  2. 选择维度:延迟、错误率、吞吐量、可用性。
  3. 用户视角:优先选择用户直接感知的指标。
  4. 实际案例:举例某个服务如何从APM工具中筛选SLI。

示例回答(80字):“SLI是服务实际表现的直接度量,比如请求P99延迟;SLO则是我们承诺的目标,比如P99 ≤ 200ms。我们通常优先选择与用户体验强相关的指标,如首页接口的延迟和错误率,再根据历史百分位设定SLO。”

可能追问:如果SLI有多种维度,你如何权衡优先级?
避坑提醒:不要只背定义,要结合具体业务(如电商、视频)说明选择逻辑;避免仅谈理论不谈实践。

🎯 面试问答二:错误预算耗尽后,SRE应该做什么?

面试官考察点:错误预算的使用机制、风险平衡能力、工程决策力。

回答框架:

  1. 错误预算含义:剩余可犯错额度。
  2. 消耗殆尽时:触发“冻结期”——停止发布、聚焦可靠性。
  3. 例外处理:安全补丁、P0故障修复可继续发布。
  4. 复盘改进:分析预算消耗原因,降低下次风险。

示例回答(85字):“错误预算耗尽说明服务可靠性已低于SLO,此时应暂停所有非关键变更,集中精力修复根本问题。例如,我们会启动‘发布冻结’,只允许安全更新和故障修复。同时组织复盘,优化SLI或调整SLO,避免未来重复透支。”

可能追问:如果业务要求必须发布新功能,你会怎么做?
避坑提醒:不要回答“不惜一切代价发布”,要体现SRE的平衡思维;可以建议短期加宽SLO窗口或临时提高预算分配。

🎯 面试问答三:如何计算一个分布式系统的全年可用性?请给出公式与示例。

面试官考察点:可用性计算的深度、对多组件依赖的理解、故障隔离认知。

回答框架:

  1. 单组件可用性公式:可用性 = (总时间 - 不可用时间) / 总时间。
  2. 串联系统:各组件可用性相乘(最薄弱环节)。
  3. 并联系统:可用性 = 1 - (1-A1)*(1-A2)。
  4. 实际举例:依赖三个服务,每个99.9%,串联后 ≈ 99.7%。

示例回答(90字):“假设核心链路依赖A、B、C三个服务,各自可用性为99.9%,串联后可用性=0.999³≈99.7%。而通过冗余设计(如多AZ部署),可将并联部分提升至1-(0.001)²≈99.9999%。实际中我们会先计算关键路径的单点故障影响,再针对瓶颈做冗余。”

可能追问:熔断、降级如何影响整体可用性计算?
避坑提醒:公式只是基础,要体现架构理解;避免简单罗列数字,应结合故障场景说明计算逻辑。

📁 项目案例:电商平台核心交易链路SLO优化

项目名称 电商下单链路SLO从99.9%提升至99.99%
业务背景 大促期间订单丢失导致GMV损失,用户投诉激增
规模指标 日均订单5000万,峰值QPS 20万,调用链涉及15个微服务
技术栈 K8s、Istio、Prometheus、Grafana、Redis、Kafka、MySQL
核心难点 1) 多级依赖下的错误预算分配;2) 慢查询导致P99抖动;3) 自愈策略与人工操作脱节
面试高频追问
  • 你们如何为每个子服务制定SLI/SLO?
  • 错误预算耗尽时触发过怎样的冻结?
  • 优化后如何量化收益?
  • 如果SLI和业务指标冲突怎么办?
可迁移回答话术 “我们根据用户感知的程度,将下单链路拆解为5个关键SLI(如订单创建失败率、支付确认延迟),每个SLI设定独立SLO,并通过错误预算串联。当某个子服务预算耗尽时,自动隔离该服务的发布权限,并触发降级预案。最终整体可用性从99.9%提升到99.99%,大促期间订单丢失减少90%。”
💡 本章可迁移公式速记:
· 错误预算 = 1 - SLO(以小数表示)
· 串联可用性 = ∏ A_i     · 并联可用性 = 1 - ∏ (1-A_i)
· 面试高频组合:SLI + SLO + 错误预算 + 可用性计算 = 一套完整的SRE价值叙事