0%

什么是 SLO

应将工程时间用于最重要服务的最重要功能

服务质量指标(SLI)

服务水平目标(SLO)

基本概念

SLO: Service Level Objective

定义 指服务可靠性的目标水平,指定了服务所提供功能的一种期望状态。
意义

  • 由于 SLO 是做出以数据为依据的可靠性决策的关键,因此它们是SRE实践的核心。
  • 服务提供者用它来指定系统的预期状态;
  • 开发人员编写代码来实现;
  • 客户依赖于 SLO 进行商业判断。

示例

  • 每分钟慢查询数量 < 10
  • 99% 访问延迟 < 100ms
  • 99% 每分QPS > 10k/s

SLO 几个最佳实践

  • 明确指定计算的时间窗口
  • 使用一致的时间窗口(例如:5min滚动窗口、15min滚动窗口、1h滚动窗口、24h级滚动窗口)
  • 需要有免责条款(例如:95%的慢查询要达到SLO、95%的访问延迟要达到SLO)

遵循原则

  • 测量系统当前状态
    • 设置预期(expectations),而不是保证(guarantees)
    • 初期的 SLO 不适合作为服务质量的强化工具
  • 改进 SLO
    • 设置更低的响应时间、更改的吞吐量等
  • 保持一定的安全缓冲
    • 内部用的 SLO 要高于对外宣称的 SLO
  • 不要超额完成
    • 定期的 downtime 来使 SLO 不超额完成

设置SLO时的目标依赖于系统的不同状态(conditions),根据不同状态设置不同的SLO,

1
总SLO = service1.SLO1 * weight1 + service2.SLO2 * weight2 + …

SLO 的收益是什么?

  • 对于客户而言
    • 是可预期的服务质量,可以简化客户端的系统设计
  • 对于服务提供者而言
    • 可预期的服务质量
    • 更好的取舍成本/收益
    • 更好的风险控制(当资源受限的时候)
    • 故障时更快的反应,采取正确措施

SLO 有哪些特性

  • SLO 是用 SLI 来描述的;
  • 指定了服务所提供功能的一种期望状态;
  • SLO 是一种工具,可帮助您确定要优先处理的工程工作;
  • SLO 为服务的客户设置了目标可靠性级别。

如何保证能够达到目标呢?

需要一个管理控制系统

  • 监控/测量 SLIs
  • 对比检测到的 SLIs 值是否达到目标
  • 如果需要,修证目标或者修正系统以满足目标需要
  • 实施目标的修改或者系统的修改

该控制系统需要重复的执行以上动作,以形成一个标准的反馈环路,不断的衡量和改进 SLO 以及服务本身。