1. 课程导论:SLO与CI/CD集成的重要性
1.1 为什么SLO需要与CI/CD流水线集成?
在传统运维模式下,服务等级目标(SLO)往往作为事后监控指标存在——服务上线后,SRE团队通过仪表盘观察燃烧速率,再决定是否触发告警或回滚。这种模式存在三个致命缺陷:
- 反馈延迟:代码合并到生产环境数小时甚至数天后,才发现SLO违反,故障根因已难以追溯。
- 人工决策瓶颈:SLO违反后的降级、回滚、熔断操作依赖值班工程师经验,缺乏自动化门禁。
- SLO与开发脱节:开发人员提交代码时看不到本次变更对SLO的潜在影响,SLO沦为“运维部门的KPI”。
将SLO嵌入CI/CD流水线,本质上是把可靠性从“事后被动响应”转变为“事前主动防御”。每一次代码提交、构建、部署,流水线都会自动评估变更对SLO的影响,并在SLO违反风险超过阈值时阻断或降级发布。
核心转变: SLO不再只是监控仪表盘上的数字,而是CI/CD流水线中的一等公民——与单元测试、安全扫描、性能基准并列的发布门禁。
1.2 课程目标与受众
| 维度 | 说明 |
|---|---|
| 课程目标 |
|
| 目标受众 |
|
| 前置知识 | 了解CI/CD基本概念(流水线、阶段、作业);熟悉至少一种CI工具;对SLO/SLI/SLI有基础认知 |
1.3 课程整体架构概览
本课程共30章,按知识递进关系分为五个模块:
| 模块 | 章节范围 | 核心内容 |
|---|---|---|
| 基础篇 | 第1-6章 | SLO核心概念、服务目录设计、作业模板YAML规范、SLI采集方式 |
| 模板工程篇 | 第7-12章 | SLO作业模板参数化、多环境变量注入、模板版本管理与测试 |
| 流水线集成篇 | 第13-20章 | Jenkins/GitLab CI/GitHub Actions/Azure DevOps集成、门禁策略、燃烧速率检查 |
| 进阶实战篇 | 第21-26章 | 渐进式交付(金丝雀/蓝绿)、SLO回滚触发器、多集群联邦SLO、成本与SLO权衡 |
| 治理与扩展篇 | 第27-30章 | SLO作业模板治理、审计与合规、大规模服务目录运营、课程总结与最佳实践 |
学习建议: 基础篇和模板工程篇建议按顺序学习;流水线集成篇可根据团队实际使用的CI工具跳转对应章节;进阶实战篇适合已有SLO基础、希望提升自动化成熟度的学员。
1.4 SLO与CI/CD集成全景图
下图展示了SLO作业模板在CI/CD流水线中的完整生命周期:从服务目录定义SLO模板开始,到流水线各阶段自动执行SLO验证,最终反馈至发布决策。
1.5 课程核心收益
完成本课程后,你将能够:
- 设计可复用的SLO作业模板:基于服务目录元数据,自动生成不同环境、不同服务等级的SLO验证作业。
- 实现流水线SLO门禁:在CI/CD关键阶段嵌入SLO检查,根据燃烧速率自动阻断或降级发布。
- 建立SLO反馈闭环:生产环境SLO数据自动回流至服务目录,驱动模板持续优化。
- 降低MTTR:通过SLO门禁提前发现可靠性风险,减少生产事故。
注意: SLO与CI/CD集成不是一次性配置,而是一个持续演进的过程。初期建议从1-2个核心服务开始,逐步扩展至全服务目录。避免一开始就追求全自动化,先建立“警告”门禁,再过渡到“阻断”门禁。