SLA与SLO以及SLI之间的关系

背景

做了一年的SRE,虽然大部分时间都在做开发,但是其中一些概念还是需要去了解的,这篇文章主要梳理下关于什么是SLA,SLO,SLI概念以及它们之间的关系。

SLA(Service-Level Agreement) 服务等级协议

SLA简单来说就是一种保证下限的协议,没有任何一个服务可以保证自己不会出现问题,停机出现故障时必然的,但是在多长时间之内恢复以及相应的赔偿就是SLA需要做的事情了。SLA 通常包括以下方面的约定:

  1. 可用性: 服务在特定时间内可用的百分比。
  2. 性能: 服务的响应时间、吞吐量等方面的指标。
  3. 支持和维护: 提供者将提供何种程度的支持和维护服务。
  4. 安全性: 服务提供者对安全性的保证。

而SLA会通过几个9表示可用性,比如:

  • 3个9(99.9%): 表示服务每年最多允许约 8 小时 45 分钟的停机时间。
  • 4个9(99.99%): 表示服务每年最多允许约 52 分钟的停机时间。
  • 5个9(99.999%): 表示服务每年最多允许约 5 分钟的停机时间。

每提升一个9付出的成本都会非常大,但是收益并不一定会随着可用性越来越高而涨高,所以需要做好规范。

这里简单看下阿里redis的SLA协议:

image-20240130130803569

image-20240130130832148

SLO(Service-Level Objective)服务水平目标

SLO规定服务提供者对服务性能的期待目标,是一种承诺,它和SLA协议有点类似,但是不一样,首先它并没有对应的惩罚机制,它描述了在特定时间范围内,服务提供者期望服务达到的具体水平。SLO 通常与 SLA(Service Level Agreement)相关联,但它更关注服务的内在性能目标。比如说SLA保证一个月内停机次数不超过3次,而SLO则是一个月在99.99的时间内,服务响应时间不超过 200 毫秒。

SLI(Service-Level Indicator) 服务水平指示器

SLO依赖于SLI,而SLI并不是单个的指标,而是多个指标所组成的,比如多个指标来表示一个服务的可用性百分比、请求的成功率、服务的平均响应时间等。

SLI是用于度量服务性能的具体指标。它是对服务行为的定量测量,通常以百分比或比率的形式表示,例如服务的可用性、响应时间等。

参考


SLA与SLO以及SLI之间的关系
http://example.com/2024/01/30/SLA与SLO以及SLI之间的关系/
Author
John Doe
Posted on
January 30, 2024
Licensed under