1. 课程导论:SLI 与 SLO 基础概念、为什么需要管理 SLI 口径配置变更、Terraform 与 CI/CD 在其中的角色

1.1 SLI 与 SLO 基础概念

在站点可靠性工程(SRE)体系中,SLI(Service Level Indicator,服务等级指标)与SLO(Service Level Objective,服务等级目标)是衡量服务健康度的核心度量对。SLI 是实际观测到的量化指标,SLO 则是围绕 SLI 设定的目标阈值。

术语 定义 示例
SLI 对服务某一维度(延迟、错误率、吞吐量等)的实际测量值,通常以比率或分布形式呈现。 请求延迟 P99 ≤ 200ms;HTTP 500 错误率 ≤ 0.1%
SLO 围绕 SLI 设定的目标边界,是服务等级协议(SLA)的内部承诺依据。 过去 30 天内,99.9% 的请求延迟 P99 ≤ 200ms
SLA 对外部客户承诺的合同级目标,通常比 SLO 更宽松。 月度可用性 ≥ 99.5%(含赔偿条款)
关键区分:SLI 是“测量什么”,SLO 是“目标是多少”。SLO 必须基于 SLI 定义,而 SLA 则基于 SLO 对外承诺。管理 SLI 口径,本质上是管理“测量什么”以及“如何测量”的规则。

1.2 为什么需要管理 SLI 口径配置变更

SLI 口径并非一成不变。随着业务演进、基础设施重构、监控工具升级,SLI 的定义规则、数据源、聚合方式、阈值边界都会频繁变动。缺乏对 SLI 口径配置的版本化管理,会引发以下问题:

  • 口径漂移:不同团队对同一 SLI 使用不同的计算逻辑,导致 SLO 报告不一致。
  • 回滚困难:口径变更后发现问题,无法快速恢复到上一个已知正确的配置版本。
  • 审计缺失:无法追溯“谁在什么时间修改了哪个 SLI 口径”,合规性不达标。
  • 环境差异:开发、预发、生产环境的 SLI 口径配置不同步,造成误告警或漏告警。
常见陷阱:很多团队直接在监控 UI 上手动修改 SLI 口径,认为“改一下阈值很简单”。这种操作没有变更记录、没有审批、没有回滚能力,一旦误改,恢复成本极高。

因此,SLI 口径配置变更需要纳入基础设施即代码(IaC)与CI/CD 流水线管理,实现可追溯、可审计、可自动化的变更流程。

1.3 Terraform 与 CI/CD 在其中的角色

本课程的核心技术栈是 Terraform 与 CI/CD 流水线,二者在 SLI 口径配置变更管理中承担互补角色:

角色 工具 职责
声明式定义 Terraform 将 SLI 口径(数据源、指标过滤、聚合窗口、阈值)以 HCL 代码形式声明,存储在 Git 仓库中。
变更自动化 CI/CD 流水线 代码提交后自动执行 Terraform Plan/Apply,将口径配置推送到监控平台(如 Datadog、Prometheus、Grafana)。
版本控制 Git 记录每次口径变更的差异、提交人、时间戳,支持分支策略与代码审查。
合规与审计 CI/CD + Terraform 通过流水线门禁(Policy as Code)自动校验口径变更是否符合组织规范,生成审计日志。

下图展示了 Terraform 与 CI/CD 在 SLI 口径配置变更管理中的协作流程:

Terraform 与 CI/CD 管理 SLI 口径配置变更流程 Terraform + CI/CD 管理 SLI 口径配置变更流程 开发人员 提交 SLI 口径 HCL 代码 Git 仓库 版本控制 + 分支策略 CI/CD 流水线 Plan / Apply / 门禁 监控平台 Datadog / Prometheus / Grafana SLI 口径生效 SLO 监控 / 告警 / 报告 变更可追溯、可回滚 每次提交自动触发 Plan/Apply

1.4 本课程的核心价值

通过本课程,你将掌握以下能力:

  • 使用 Terraform 声明式定义 SLI 口径配置,消除手动操作。
  • 将 SLI 口径变更纳入 CI/CD 流水线,实现自动化部署与回滚。
  • 通过 Policy as Code 在流水线中自动校验口径合规性。
  • 构建可审计、可复现的 SLI 配置管理流程,支撑 SRE 体系落地。
课程前置要求:具备基础的 Terraform 语法知识(resource、data source、provider),了解 Git 工作流与 CI/CD 基本概念(如 Jenkins、GitLab CI、GitHub Actions)。本课程将使用 Terraform 与 Prometheus/Grafana 作为主要演示平台。