Google Cloud 架构框架中的本文档定义了一些关键概念,有助于您了解和创建服务等级目标 (SLO)。
SLO 在核心层面上反映了您为用户提供的服务的可靠性目标。在定义这些目标时,务必要纳入所有关键利益相关方的意见。有许多不同的群体和管理层都在关注着您的服务。这些人包括企业主、产品所有者、高管、工程师、支持人员、运营人员、销售人员以及与您的服务相关的任何其他群体。
获取利益相关方意见的方法有很多种,因而您也可以据此选择不同的可靠性目标。最终如何选择目标取决于您和贵组织基于要求、利益相关方和其他因素做出的决策。虽然此决策过程不在本指南的讨论范围内,但一个简单的方法是创建一个描述 SLO 及其开发过程的共享文档。随着时间的推移,您的团队可以在实现并持续改进 SLO 的过程中对该文档进行迭代。
以下部分定义了 SLO 的各组成部分。
服务等级
服务等级用于衡量服务为用户完成其预期工作的表现。此指标可以用用户满意度来描述,并通过各种方法进行衡量,具体取决于服务的独特特征、用户群和用户期望。在本指南中,我们将服务表现与系统的可靠性相关联。
服务等级示例:我们的用户希望服务能够提供高可用性及高运行速度。
服务等级指标
服务等级指标 (SLI) 是一种可以定量测量的用户满意度指标。指标类似于图表上的线条,会随着服务改善或降级而变化。要评估服务等级,请选择表示用户满意度某个方面的指标。可用性是一种常见的 SLI。
SLI 示例:过去 10 分钟内的成功请求数量除以同一时段内所有有效请求的数量所得到的值。
该示例中的 SLI 具体且明确定义,以数值表示。该值反映了服务的可用性。通过在一段时间内持续跟踪此 SLI,团队可以确定其服务的总体可用性。
如需详细了解如何选择 SLI,请参阅选择 SLI。
服务等级目标
服务等级目标 (SLO) 是您期望服务达到的目标范围(由 SLI 衡量)。以下示例使用响应时间(即服务速度)作为 SLI。
SLO 示例:在 14 天内衡量的所有有效请求中,有 95% 的请求的服务响应速度快于 400 毫秒 (ms)。
在该 SLO 示例中,SLI 为响应速度快于 400 毫秒的请求数除以有效请求数所得到的值。系统会在 14 天内跟踪此百分比。目标是所有请求中有 95% 的请求满足此条件。也就是说,如果最终结果(满足条件的请求所占的百分比)超过 95%,则表示您已满足服务的 SLO。
简而言之,SLI 是对服务的某种衡量(如速度、可用性和成功率)。SLO 是这些测量值的特定数量(百分比)达到或超过某个预定级别或范围的预期。任何低于预期水平的表现都是不良的表现。您未能在特定表现方面为用户提供可靠的服务。
如需详细了解如何选择 SLO,请参阅选择 SLO。
服务等级协议
服务等级协议 (SLA) 是您与服务提供商及您的客户之间的合约。它列出了对客户承诺以及客户最终期望的 SLO。SLA 还指定了未满足 SLO 时会出现什么情况。SLO 中断可能会导致服务提供商退款、提供折扣服务,或者在较关键的服务中可能面临法律诉讼或惩罚性损害赔偿。
本指南不着重讨论 SLA。这里之所以提到 SLA,是为了加强您对 SLO、SLI 和用户之间的关系的理解。
错误预算
在讨论 SLO 时,需要了解的最后一个值是您的服务在违反 SLO 之前可承受的负面事件百分比或数量。该数值被称为“错误预算”,定义了您的业务预期可以容忍的错误数量。
为方便演示,我们使用可用性作为 SLI(以百分比表示)。百分比中的三个或更多“9”表示您在衡量该 SLI 时要使用的精确度。换句话说,“9”的个数表示可用性百分比。
假设 SLO 包含三个 9,即 99.9%。从 100% 中减去该 SLO 值,即可得出错误预算为 0.1%。在讨论可用性时,0.1% 的预算是指每年服务不可用的时间应略少于 9 个小时。再增加一个 9 可大大减少错误预算。99.99%(四个 9)的可用性允许每年不到一小时的服务停机时间。
停机时间包括失败的请求、服务器因故障(崩溃或软件错误)或设计(升级或测试)、人为错误、事故等停机。