SRE方法论之服务质量目标

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

为了量化客户对服务可靠性的期望,找到客户对可靠性满意的点,我们需要制定针对用户的服务质量目标,并且努力去达到这个质量目标。在这个过程中,我们需要定义一些服务质量指标(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%,这些都是很难达到或者要付出很大的成本才行,投入产出比很低。

相关文章
|
Web App开发 容灾 安全
非功能关键知识总结
【2月更文挑战第4天】非功能关键知识总结
1555 2
|
存储 运维 监控
什么是 SRE?一文详解 SRE 运维体系
什么是 SRE?一文详解 SRE 运维体系
4333 1
|
运维 Kubernetes Cloud Native
腾讯云私有云平台运维面试
根据会议将面试问题进行总结,很多问题感觉当时没回答好,这是为啥呢?应该还是不熟练吧,或者不善于表达。将次经历分享出来,大家多练练。
1045 0
|
7月前
|
存储 人工智能 缓存
运维智能体(SRE Agent)技术分级能力要求
本标准规范了运维智能体在场景应用、协同能力、能力建设及底座构建方面的技术要求,适用于公共与私有环境下的服务与产品。依据AI技术发展,定义了从初始级到优秀级的三级能力框架,涵盖感知、控制、行动等核心能力,推动运维智能化升级。
运维智能体(SRE Agent)技术分级能力要求
|
数据采集 运维 监控
服务水平协议(SLA)监控究竟是个啥??
服务水平协议(SLA)监控究竟是个啥??
3272 1
|
分布式计算 Hadoop 分布式数据库
死磕HBase(二)
死磕HBase(二)
|
缓存 运维 监控
《SRE实战》实践
SRE 全称是 Site Reliability Engineering,最早是由 Google 提出,并且在其工程实践中发扬光大。 他们还出了一本同名书籍「Site Reliability Engineering」, 让这个理念在互联网工程师圈子里广泛传播。
2348 0
|
Prometheus 监控 数据可视化
面试分享:Airflow工作流调度系统架构与使用指南
【4月更文挑战第10天】Apache Airflow是关键的工作流调度系统,本文结合面试经验,深入探讨其核心架构和使用技巧。重点包括:1) Airflow的Scheduler、Web Server、Worker和Metadata Database组件;2) DAG、Task和Operator的概念;3) DAG编写、调度及错误处理策略;4) 监控与扩展性,如自定义Operator和最佳实践。通过学习,助你在面试中应对Airflow相关问题,并提升实际工作中的数据工程能力。
1148 5
|
缓存 前端开发 安全
DDD中的分层架构
领域驱动设计(DDD)的分层架构演进为依赖倒置的四层模型,强调关注点分离。表现层(UI)展示信息并处理用户指令,应用程序层负责用例编排,与领域层交互但不含业务逻辑。领域层承载核心业务逻辑,包含领域模型和服务,确保业务正确性。基础设施层提供技术支撑,如数据库和缓存,服务于其他层。各层解耦,实现灵活的系统架构。
644 0
|
Kubernetes 监控 Cloud Native
云原生|kubernetes|kubernetes集群巡检脚本
云原生|kubernetes|kubernetes集群巡检脚本
697 0