写点什么

SRE 方法论之服务质量目标

作者:不思jo
  • 2023-08-18
    江苏
  • 本文字数:951 字

    阅读完需:约 3 分钟

为了量化客户对服务可靠性的期望,找到客户对可靠性满意的点,我们需要制定针对用户的服务质量目标,并且努力去达到这个质量目标。在这个过程中,我们需要定义一些服务质量指标(SLI)、服务质量目标(SLO),以及服务质量协议(SLA)。这三项分别是指该服务最重要的一些基础指标、这些指标的预期值,以及当指标不符合预期时的应对计划。

一、服务质量术语:SLI、SLO、SLA

指标

服务质量指标(SLI):服务的某项服务质量的一个具体量化指标。常见的 SLI 包括请求延迟(处理请求所消耗的时)、错误率(请求处理失败的百分比)、系统吞吐量(每秒请求数量)、可用性(服务可用时间的百分比,运维行业经常用 9 的数量来描述可用程度。例如,99%可用性被称为“2 个 9”,99.999%被称为“5 个 9”)。SLI 也可以是一些业务指标,例如用户投诉率之类的。重点是可量化、可确定的。

目标

SLO 是服务质量目标(Objective):服务的某个 SLI 的目标值,或者目标范围。SLO 的定义是 SLI≤目标值,或者范围下限≤SLI≤范围上限。例如,对于搜索服务来说,用户希望返回结果的速度应该是很“快”的,那么我们可以定义一个 SLO,要求搜索请求的平均延迟小于 100ms。

协议

SLA 是服务质量协议(Agreement):指服务与用户之间的一个明确的,或者不明确的协议,描述了在达到或者没有达到 SLO 之后的后果。这些后果可以是财务方面的退款或者罚款,也可以是其他类型的后果。区别 SLO 和 SLA 的一个简单方法是问“如果 SLO 没有达到时,有什么后果?”,如果没有定义明确的后果,那么我们是在讨论一个 SLO,而不是 SLA。


二、SLI、SLO、SLA 制定原则

1、以用户体验为中心

服务的服务质量指标有很多,不可能将监控系统中的所有指标都定义为 SLI。只有理解用户对系统的真实需求才能真正决定哪些指标是否有用。比如对于搜索服务,用户通常关心可用性、延迟,以及吞吐量。换句话说:是否能正常处理请求?每个请求花费的时间是多少?多少请求可以被处理?对于存储系统来说,用户会关注延迟、可用性和数据持久性,换句话说:读写数据需要多少时间?我们是否可以随时访问数据?数据是否一段时间内还能被读取?

2、量力而行

资源是有限的,在选择 SLO 时要注意不能过于追求完美。例如 1s 内加载好用户就很满意了,如果非要设置 20ms 内加载完毕、或者成功率为 100%,这些都是很难达到或者要付出很大的成本才行,投入产出比很低。

用户头像

不思jo

关注

做运维的乔不思 2022-12-08 加入

围绕系统稳定性保障,分享SRE、AIOps、DevOps、故障治理等知识经验,希望和更多大咖交流学习

评论

发布
暂无评论
SRE方法论之服务质量目标_SRE_不思jo_InfoQ写作社区