1. 课程导论:SLI/SLO/SLA 基本概念、为什么需要自动化采集管线、Terraform 在可观测性中的角色

1.1 核心概念:SLI、SLO、SLA

在构建可观测性体系之前,必须统一三个基础术语。它们构成了服务等级管理的金字塔结构:

术语 全称 定义 典型示例
SLI Service Level Indicator 服务等级指标,是经过良好定义的、可量化的测量值 请求延迟 P99 ≤ 200ms;错误率 ≤ 0.1%
SLO Service Level Objective 服务等级目标,是 SLI 的目标阈值或范围,代表“期望值” 过去 30 天内,99.9% 的请求延迟 P99 ≤ 200ms
SLA Service Level Agreement 服务等级协议,是向客户承诺的、通常附带惩罚条款的正式契约 月度可用性 ≥ 99.99%,否则退还 10% 月费
实践要点:SLO 通常比 SLA 更严格(内部目标高于对外承诺),为故障留出“燃烧预算”余量。SLI 的选择应直接反映用户体验,而非基础设施内部指标。

三者关系可概括为:SLI 是测量值 → SLO 是目标值 → SLA 是契约值。SRE 的核心工作之一就是定义 SLI、设定 SLO、监控燃烧速率,并在 SLO 违约前触发干预。

SLI / SLO / SLA 金字塔关系 SLA 服务等级协议(对外契约 + 惩罚) SLO 服务等级目标(内部承诺阈值) SLI 服务等级指标(可量化测量值) SLI 是测量值 → SLO 是目标值 → SLA 是契约值 SLO 通常比 SLA 更严格,预留燃烧预算

1.2 为什么需要自动化采集管线

手动采集 SLI 数据在微服务和云原生架构下已不可行。核心痛点包括:

  • 规模爆炸:单体应用拆分为数十至数百个微服务,每个服务暴露多个指标,手动配置无法持续。
  • 口径不一致:不同团队对“延迟”“错误率”的计算方式不同,导致 SLO 报告无法对齐。
  • 变更频繁:基础设施、服务版本、采集规则每周甚至每天变化,手工更新配置极易遗漏。
  • 缺乏版本控制:手动修改采集配置无法追溯,故障回滚困难。

自动化采集管线需要解决以下关键能力:

能力维度 手工方式 自动化管线
配置管理 SSH 登录、YAML 手动编辑 声明式代码 + Git 版本控制
口径标准化 依赖个人经验,容易漂移 模块化模板,强制统一口径
部署效率 数小时到数天 分钟级,一键部署/回滚
审计与合规 难以追溯 完整的变更历史与审批链
核心结论:自动化采集管线不是“锦上添花”,而是 SRE 团队在云原生规模下维持 SLO 可观测性的强制性基础设施。

1.3 Terraform 在可观测性中的角色

Terraform 作为基础设施即代码(IaC)的事实标准,在可观测性领域承担着“配置编排器”和“口径标准化引擎”的双重角色。它并非直接采集数据,而是负责:

  • 声明式定义采集目标:使用 HCL 语言描述 Prometheus 抓取配置、Datadog 集成、Grafana 数据源等。
  • 模块化封装 SLI 口径:将“P99 延迟计算”“错误率口径”封装为可复用的 Terraform 模块,确保多环境一致。
  • 生命周期管理:创建、更新、销毁采集管线资源,并与 CI/CD 流水线集成。
  • 状态管理与一致性:通过 state 文件跟踪实际部署状态,防止配置漂移。
Terraform 在可观测性采集管线中的角色 Terraform 声明式编排引擎 HCL 配置 + State 管理 SLI 口径模块 延迟 / 错误率 / 饱和度 可复用、版本化、参数化 采集目标 Prometheus / Datadog Grafana / CloudWatch 调用 部署 Terraform 带来的核心价值 ✅ 口径标准化 ✅ 环境一致性 ✅ 变更可追溯 ✅ 一键部署/回滚 ✅ 与 CI/CD 集成 ✅ 多云/混合云统一管理 典型工作流 Git 提交 → CI 验证 → Terraform Plan → Apply → 采集管线生效 所有变更通过 Pull Request 审查,确保口径合规

1.4 课程目标与学习路径

本课程将带领学员从零构建一套基于 Terraform 的 SLI 口径采集管线。完成本课程后,你将能够:

  1. 理解 SLI/SLO/SLA 的工程化落地方法,不再停留在理论层面。
  2. 使用 Terraform 模块化封装 SLI 口径,实现“一次定义,到处部署”。
  3. 管理 Prometheus、Grafana、Datadog 等可观测性平台的采集配置,全部通过 IaC 方式。
  4. 建立采集管线的 CI/CD 流水线,实现变更自动化与合规审查。
  5. 掌握 Terraform 状态管理、模块注册、版本控制等高级技巧,应对生产环境挑战。
前置要求:学员需具备基本的 Terraform 使用经验(了解 HCL 语法、熟悉 terraform init/plan/apply 流程),以及基础的 Prometheus/Grafana 概念。本课程不教授 Terraform 入门语法,而是聚焦于可观测性场景的模块化设计模式。