SRE重要理念之SLA、SLO、SLI

SLA (service level agreement):服务等级协议
指的是整个协议,协议的内容包含了SLI,SLO以及恢复的方式和时间等等一系列所构成的协议

这种协定可能是,如果服务失效、或者达不到预期的效果,该怎样做。一般是赔偿、退款,当然也有其他形式。一般来说,SRE是不参与SLA的制定,因为SLA更靠近商务层面或者产品设计层面。
比如谷歌搜素这项服务,并没有暴露给用户的SLI,但是却有和全世界都签订协议,也就是SLA。(你注册谷歌账号时,一大堆的文字)

SLO(service level objective):服务等级目标
指的是目标,例如:qps 99.99% ,响应时间10ms等等

SLO是一组值的范围,这个值就是由SLI定义的服务级别数值。自然的SLO定义就是,某SLI在正常情况下需要小于某值或者处于某个大小值之间。
选择一个合适的SLO并不是一件容易的事情,当然一开始并不需要设定好这个范围,比如说QPS,这个指标取决于你的用户,而你是无法预先做出判断的。(比如运维平台上线了某个服务,你可能预测这服务最后每天的使用量能达到100次,但实际并没人用,因为可能用户都不知道有这么一项功能)
确定一个SLO,和服务怎样运行也有关系(how service to perform)

SLI(service level indicator):服务等级对象
指的是对象,例如:qps,响应时间,准确性,可用性,延迟,生产力等

不是所有的metric都视为SLI,选择尽可能少的SLI,但这些SLI却能说明服务是否稳定,可靠。
这些SLI应该:
用户侧系统(user-facing serving systems):可用性(a)延迟(latency)服务生产力(throughput)。换句话说:服务能响应用户的请求吗?响应要耗时多久?我们能处理多少请求?
存储系统(storage systems):延迟,可用性和持久性。换句话说:成功写数据需要多久?是否能正确获取到想要的数据?
大数据系统(big data systems):对于数据处理管道(data processing pipeline),就需要去关注生产力与端对端的延迟(end-to-end latency)换句话说:有多少数据被处理?从获取数据到处理完成耗时多少?

原文地址:https://www.cnblogs.com/Mongol-J/p/13555614.html