简单系统质量 —— SLO(二)

简单系统质量 —— SLO(二)

一、服务水平目标(SLO)

SLO: Service Level Objective

1.1 基本概念

定义

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

意义

由于 SLO 是做出以数据为依据的可靠性决策的关键

  • 它们是SRE实践的核心。
  • 服务提供者用它来指定系统的预期状态;
  • 开发人员编写代码来实现;
  • 客户依赖于 SLO 进行商业判断。

示例

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

SLO 几个最佳实践

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

1.2 遵循原则

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

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

1.3 SLO 的收益是什么?

  • 对于客户而言

    • 是可预期的服务质量,可以简化客户端的系统设计
  • 对于服务提供者而言

    • 可预期的服务质量
    • 更好的取舍成本/收益
    • 更好的风险控制(当资源受限的时候)
    • 故障时更快的反应,采取正确措施

1.4 SLO 有哪些特性?

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

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

需要一个监控系统

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

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

简单系统质量 —— SLO(二)

https://minram.github.io/sre/systemmonitor-02-slo/

作者

MinRam

发布于

2022-07-16

更新于

2022-07-16

Licensed under

评论