Module 02 · DevOps & CI/CD开发运维与持续集成·持续交付
What Is CI/CD?什么是 CI/CD?
学习目标
观看本视频后,你将能够:
- 解释 持续集成(CI) 和 持续交付(CD) 的概念
- 描述 持续集成(CI) 和 持续交付(CD) 的关键区别
- 说明 CI/CD 的主要优点
持续集成(CI)与持续交付(CD)有何不同?
许多人将 CI/CD 视为一个单一的过程,但实际上,持续集成(CI) 和 持续交付(CD) 是两个独立且不同的过程,通常是 顺序进行 的。
持续集成(CI)
持续集成是将你的代码持续地集成到主分支、主干或主代码库中,避免在合并代码时发生过大的偏离。确保你始终将代码与主代码库保持同步,及时合并以确保一切正常工作。
持续交付(CD)
持续交付则是将已经集成的代码部署到某个环境中。你可以选择每次集成后都进行部署,或者不每次都部署。
- 持续集成 可能会用于测试分支和拉取请求(pull requests)。
- 当代码最终合并到主分支时,启动 持续交付 过程。
持续集成(CI)和持续交付(CD)的定义
持续集成(CI)
CI 是一个自动化过程,允许你将工作成果集成到版本库中。
- 通过 CI,你可以和团队一起开发应用程序,快速发现并修复代码中的错误。
- 团队可以在不同区域进行小范围的开发,并定期将代码合并到主分支中。
持续交付(CD)
持续交付是 持续集成 之后的下一个阶段。它准备好代码并自动化了部署和构建应用程序的过程。
CI/CD 过程的不同阶段
持续集成(CI)阶段
持续集成由以下几个阶段组成:
- 计划(Plan)
- 编码(Code)
- 构建(Build)
- 测试(Test)
在这些阶段中,开发人员计划并编写代码,然后将其构建并反复测试,直到完成最终解决方案。
持续交付(CD)阶段
持续交付则包括以下阶段:
- 发布(Release)
- 部署(Deploy)
- 运营(Operate)
在这些阶段中,解决方案被发布,二进制文件被部署到特定环境中,并进行反复的迭代,直到解决方案投入实际运营。

CI/CD 与持续部署(Continuous Deployment)的区别
持续交付(CD)与持续部署(Continuous Deployment)
- 持续交付:指将代码部署到开发服务器、测试服务器、预生产环境等,而不是直接部署到生产环境。
- 持续部署:是将代码自动化部署到生产环境。这意味着每次代码变化都会直接影响生产环境。
尽管这两个术语的含义非常接近,但它们 并不相同。
- 持续交付 主要指将代码交付到生产以外的环境。
- 持续部署 则意味着代码直接部署到生产环境。

CI/CD 在 DevOps 流水线中的位置
DevOps 流水线通常包括以下阶段:
- 计划(Plan)
- 开发(Develop)
- 构建(Build)
- 测试(Test)
- 部署(Deploy)
在 DevOps 流水线中,CI/CD 主要处于 构建(Build) 和 测试(Test) 阶段,负责代码的自动构建、集成、测试和部署。
CI/CD 的主要优点
- 更快的响应时间:
通过 CI/CD,你不再需要等待代码变更的效果,因为变更会自动进行构建、测试和部署。 - 减少代码集成风险:
频繁地集成代码意味着变更的时间间隔变短,从而减少了出现问题的风险。 - 提高代码质量:
CI/CD 过程中的持续检查和测试确保了代码的高质量。每次 拉取请求 都是一个 代码审查 的机会。 - 更高的可部署性:
确保主分支的代码随时可部署,这是 CI/CD 的常见做法,能够提高代码的稳定性。 - 更快的部署时间:
由于所有测试都已通过,且部署自动化,因此部署过程变得更快,且具有更好的可重复性。
总结回顾
在本视频中,你学到了:
- CI/CD 不是一个单一过程,而是两个 独立且不同 的过程,它们是 顺序执行 的。
- 持续集成(CI) 是一个自动化过程,允许开发者将代码持续集成到主分支中。
- 持续交付(CD) 是持续集成之后的阶段,将集成的代码部署到开发、测试或预生产环境中。
- 持续部署(Continuous Deployment) 是将代码部署到生产环境中。
- CI 包括 计划、编码、构建 和 测试 阶段。
- CD 包括 发布、部署 和 运营 阶段。
- CI/CD 在 DevOps 流水线中主要位于 构建 和 测试 阶段。
- CI/CD 带来了更快的响应速度、减少了集成风险、提高了代码质量、减少了部署时间等多个优点。