1. 课程导论:CI/CD 与 Runbook 的概念、为什么需要联动、课程目标与学习路径
1.1 核心概念:CI/CD 与 Runbook
在深入联动实践之前,我们需要先明确两个核心概念的定义与边界。
| 维度 | CI/CD 流水线 | Runbook(运维手册) |
|---|---|---|
| 定义 | 从代码提交到部署上线的自动化流程,包含构建、测试、发布等阶段。 | 针对特定运维场景(故障、变更、巡检)的标准化操作步骤文档或自动化脚本。 |
| 核心目标 | 快速、可靠地将代码变更交付到生产环境。 | 降低人为失误,缩短故障恢复时间(MTTR),确保操作一致性。 |
| 触发方式 | 代码推送(Push)、合并请求(MR/PR)、定时调度。 | 告警触发、人工执行、定时任务、或由 CI/CD 流水线调用。 |
| 输出产物 | 构建产物(Artifact)、容器镜像、部署版本。 | 执行记录、变更日志、恢复确认、状态报告。 |
| 典型工具 | Jenkins, GitLab CI, GitHub Actions, ArgoCD | Rundeck, Ansible AWX, StackStorm, 自建脚本库 |
关键认知: CI/CD 解决的是“如何高效交付”,Runbook 解决的是“交付后或交付中出问题了怎么办”。两者在传统运维中往往是割裂的,而本课程的核心就是打通这条“最后一公里”的自动化链路。
1.2 为什么需要联动:从割裂到闭环
在大多数组织中,CI/CD 流水线和 Runbook 运行在两条平行线上。这种割裂带来了三个典型痛点:
- 部署失败后响应滞后: 流水线失败后,运维人员需要手动登录机器、查阅文档、执行恢复步骤,MTTR 往往超过 30 分钟。
- 变更与操作脱节: 开发通过 CI/CD 完成部署,但数据库回滚、配置回退、流量切换等操作仍依赖人工执行 Runbook,容易遗漏步骤。
- 知识沉淀困难: Runbook 文档更新不及时,且与流水线版本没有关联,导致“文档与代码不符”的常见问题。
联动的本质,是将 Runbook 从“人找步骤”转变为“流水线自动触发步骤”,实现 部署即预案、失败即恢复 的闭环。
行业数据: 根据 2024 年 DevOps 状态报告,实现 CI/CD 与 Runbook 深度联动的团队,其变更失败率降低 42%,平均恢复时间(MTTR)缩短 57%。
1.3 课程目标
通过本课程的学习,你将能够:
- 掌握联动架构设计: 理解 CI/CD 流水线与 Runbook 引擎之间的 API 集成、事件驱动、回调机制等核心架构模式。
- 实现自动化故障恢复: 在流水线中嵌入健康检查、自动回滚、数据库迁移修复等 Runbook 步骤,实现无人值守的故障自愈。
- 构建变更与操作的一致性: 将 Runbook 版本化并与流水线版本绑定,确保每次部署都使用匹配的操作预案。
- 落地可观测性联动: 将 Runbook 执行状态、结果、耗时等指标回传至监控与告警系统,形成完整的运维数据闭环。
- 产出可复用的联动模板: 基于 Jenkins + Rundeck、GitLab CI + Ansible AWX 等主流组合,产出可直接落地的流水线模板与 Runbook 示例。
1.4 学习路径与课程结构
本课程共分为 6 个模块,30 个章节,建议按顺序学习:
| 模块 | 章节范围 | 核心内容 |
|---|---|---|
| 模块一:基础与架构 | 第 1-5 章 | 概念、联动架构模式、API 网关与事件总线设计 |
| 模块二:工具链集成 | 第 6-12 章 | Jenkins + Rundeck、GitLab CI + Ansible AWX、ArgoCD + StackStorm 实战 |
| 模块三:场景化联动 | 第 13-19 章 | 自动回滚、数据库变更、配置下发、流量切换等高频场景 |
| 模块四:可观测性融合 | 第 20-24 章 | Runbook 执行指标采集、告警联动、执行审计与可视化 |
| 模块五:安全与治理 | 第 25-28 章 | 权限模型、审批流、变更风险管理、合规审计 |
| 模块六:进阶与案例 | 第 29-30 章 | 大规模集群联动、多云场景、企业级案例复盘 |
学习建议: 每个章节都包含可运行的代码示例或配置文件。建议在本地或云上搭建一套最小实验环境(至少包含一个 CI/CD 工具和一个 Runbook 引擎),边学边练,效果最佳。
1.5 前置知识要求
为了获得最佳学习体验,建议学习者具备以下基础:
- 熟悉至少一种 CI/CD 工具的基本使用(如 Jenkins、GitLab CI、GitHub Actions)。
- 了解 Linux 基础操作与 Shell 脚本编写。
- 对 Docker 和容器化部署有基本认知。
- 了解 REST API 的基本概念(用于理解工具间的集成调用)。
环境准备: 课程配套提供了一套基于 Docker Compose 的实验环境模板,包含 Jenkins、Rundeck、Prometheus 等组件,可在第 2 章获取并一键启动。