为什么要定义服务质量目标SLO
如果不详细了解服务中各种行为的重要程度,并且不去度量这些行为的正确性的话,就无法正确运维这个系统,更不要说可靠地运维了。那么,不管是对外服务,还是内部API,我们都需要制定一个针对用户的服务质量目标,并且努力去达到这个质量目标。在这个过程中,我们需要利用一些主观判断结合过去的经验以及对服务的理解来定义一些服务质量指标(SLI)、服务质量目标(SLO),以及服务质量协议(SLA)。这三项分别是指该服务最重要的一些基础指标、这些指标的预期值,以及当指标不符合预期时的应对计划。事先选择好合适的指标有助于在故障发生时帮助SRE进行更好地决策,同时也为 SRE 团队判断系统是否正常工作提供帮助。
本章描述了SRE团队在指标建模、指标选择,以及指标分析上采用的基本框架。我们会采用前文介绍的莎士比亚搜索服务作为示例来展开讨论,具体详见第2章的"莎士比亚搜索服务"。
很多读者可能都对 SLA这个概念非常熟悉,但 SLI与SLO则可能需要一个详细定义。因为在常见的使用环境中,SLA经常被赋予了过多的意义,Google则更倾向于利用不同的词语描述其中不同的涵义,以便更加清晰地进行讨论。
SLI是指服务质量指标(indicator)——该服务的某项服务质量的一个具体量化指标。
大部分服务都将请求延迟——处理请求所消耗的时间——作为一个关键 SL1。其他常见的 SLI包括错误率(请求处理失败的百分比)、系统吞吐量(每秒请求数量)等。这些度量通常是汇总过的∶在某一个度量时间范围内将原始数据收集起来,计算速率、平均值、百分比等汇总数据。
理想情况下,SLI应该直接度量某一个具体的服务质量。但是很多时候,直接度量信息可能非常难以获取,或者无法观测,我们只能用某种指标来替代。例如,客户端的延迟数据经常是最直接的用户指标,但是由于条件限制可能只能监控服务器端的延迟数据。可用性(availability)是另外一个SRE 重视的SLI,代表服务可用时间的百分比。该指标通常利用"格式正确的请求处理成功的比例"来定义,有时也称为服务产出(yield)。对数据存储系统来说,持久性(durability)——数据能够完整保存的时间——也是一个重要指标。虽然100%的"可用性"是不可能实现的,但是接近100%的可用性指标是可以实现的一个目标。运维行业经常用9的数量来描述可用程度。例如,99%可用性被称为"2个9",9999%被称为"5个9"。目前Gogle 云计算服务公开的可用性指标是"3.5 个9" ——99.95%可用。
页:
[1]