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 违约前触发干预。
1.2 为什么需要自动化采集管线
手动采集 SLI 数据在微服务和云原生架构下已不可行。核心痛点包括:
- 规模爆炸:单体应用拆分为数十至数百个微服务,每个服务暴露多个指标,手动配置无法持续。
- 口径不一致:不同团队对“延迟”“错误率”的计算方式不同,导致 SLO 报告无法对齐。
- 变更频繁:基础设施、服务版本、采集规则每周甚至每天变化,手工更新配置极易遗漏。
- 缺乏版本控制:手动修改采集配置无法追溯,故障回滚困难。
自动化采集管线需要解决以下关键能力:
| 能力维度 | 手工方式 | 自动化管线 |
|---|---|---|
| 配置管理 | SSH 登录、YAML 手动编辑 | 声明式代码 + Git 版本控制 |
| 口径标准化 | 依赖个人经验,容易漂移 | 模块化模板,强制统一口径 |
| 部署效率 | 数小时到数天 | 分钟级,一键部署/回滚 |
| 审计与合规 | 难以追溯 | 完整的变更历史与审批链 |
核心结论:自动化采集管线不是“锦上添花”,而是 SRE 团队在云原生规模下维持 SLO 可观测性的强制性基础设施。
1.3 Terraform 在可观测性中的角色
Terraform 作为基础设施即代码(IaC)的事实标准,在可观测性领域承担着“配置编排器”和“口径标准化引擎”的双重角色。它并非直接采集数据,而是负责:
- 声明式定义采集目标:使用 HCL 语言描述 Prometheus 抓取配置、Datadog 集成、Grafana 数据源等。
- 模块化封装 SLI 口径:将“P99 延迟计算”“错误率口径”封装为可复用的 Terraform 模块,确保多环境一致。
- 生命周期管理:创建、更新、销毁采集管线资源,并与 CI/CD 流水线集成。
- 状态管理与一致性:通过 state 文件跟踪实际部署状态,防止配置漂移。
1.4 课程目标与学习路径
本课程将带领学员从零构建一套基于 Terraform 的 SLI 口径采集管线。完成本课程后,你将能够:
- 理解 SLI/SLO/SLA 的工程化落地方法,不再停留在理论层面。
- 使用 Terraform 模块化封装 SLI 口径,实现“一次定义,到处部署”。
- 管理 Prometheus、Grafana、Datadog 等可观测性平台的采集配置,全部通过 IaC 方式。
- 建立采集管线的 CI/CD 流水线,实现变更自动化与合规审查。
- 掌握 Terraform 状态管理、模块注册、版本控制等高级技巧,应对生产环境挑战。
前置要求:学员需具备基本的 Terraform 使用经验(了解 HCL 语法、熟悉 terraform init/plan/apply 流程),以及基础的 Prometheus/Grafana 概念。本课程不教授 Terraform 入门语法,而是聚焦于可观测性场景的模块化设计模式。