SLA与SLO以及SLI之间的关系
背景
做了一年的SRE,虽然大部分时间都在做开发,但是其中一些概念还是需要去了解的,这篇文章主要梳理下关于什么是SLA,SLO,SLI概念以及它们之间的关系。
SLA(Service-Level Agreement) 服务等级协议
SLA简单来说就是一种保证下限的协议,没有任何一个服务可以保证自己不会出现问题,停机出现故障时必然的,但是在多长时间之内恢复以及相应的赔偿就是SLA需要做的事情了。SLA 通常包括以下方面的约定:
- 可用性: 服务在特定时间内可用的百分比。
- 性能: 服务的响应时间、吞吐量等方面的指标。
- 支持和维护: 提供者将提供何种程度的支持和维护服务。
- 安全性: 服务提供者对安全性的保证。
而SLA会通过几个9表示可用性,比如:
- 3个9(99.9%): 表示服务每年最多允许约 8 小时 45 分钟的停机时间。
- 4个9(99.99%): 表示服务每年最多允许约 52 分钟的停机时间。
- 5个9(99.999%): 表示服务每年最多允许约 5 分钟的停机时间。
每提升一个9付出的成本都会非常大,但是收益并不一定会随着可用性越来越高而涨高,所以需要做好规范。
这里简单看下阿里redis的SLA协议:
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之间的关系/