课程导入:学习目标、适用人群与CI/CD核心价值
欢迎来到《Jenkins与GitLab CI/CD持续集成》课程。在开始动手配置流水线之前,我们需要先回答三个关键问题:为什么要学CI/CD?这门课适合谁?学完之后你能做什么?本章作为整个30章课程的地基,将帮助你建立对持续集成与持续交付的全局认知,明确学习路径,并预览贯穿全课程的实战项目——一个从代码提交到Kubernetes部署的完整电商后端服务。无论你是刚接触自动化的小白,还是希望系统梳理DevOps知识体系的开发者,这一章都将为你指明方向。
1.1 学习目标:从零搭建企业级CI/CD流水线
本课程的目标不是让你仅仅学会点击Jenkins界面或编写几个GitLab CI的YAML片段,而是培养你独立设计、实现、优化和维护一套完整CI/CD体系的能力。学完本课程,你将能够:
- 掌握Git协作核心技能:包括分支策略、Merge Request流程、代码冲突解决,为自动化流水线奠定版本控制基础。
- 精通Jenkins流水线开发:从传统Freestyle任务到声明式Pipeline(Declarative Pipeline),掌握参数化构建、多分支流水线、共享库等高级特性。
- 熟练使用GitLab CI/CD:理解
.gitlab-ci.yml的语法结构、Runner的注册与配置、缓存与artifact管理、环境部署策略。 - 构建容器化部署链路:将Docker镜像构建、私有仓库推送、Kubernetes滚动更新无缝集成到流水线中。
- 建立质量门禁体系:集成SonarQube代码扫描、自动化测试覆盖率检查、安全漏洞检测,让每次代码提交都经过严格把关。
1.2 课程适用人群:谁需要这门课?
本课程内容从基础到进阶,适合以下三类人群:
| 人群类型 | 背景特征 | 核心诉求 | 课程收益 |
|---|---|---|---|
| 初级/中级后端开发 | 熟悉Java/Go/Python,了解Git基本操作 | 不想手动打包部署,希望自动化 | 掌握流水线编写,提升交付效率 |
| 运维/DevOps工程师 | 有Linux基础,接触过CI工具但不成体系 | 需要搭建企业级CI/CD平台 | 系统学习Jenkins+GitLab最佳实践 |
| 测试工程师/全栈工程师 | 了解自动化测试,希望融入CI流程 | 让测试在流水线中自动执行 | 掌握质量门禁与测试集成方法 |
如果你属于以上任一群体,并且希望摆脱“手动构建-上传服务器-重启服务”的重复劳动,那么这门课就是为你量身定制的。课程假设你具备基本的Linux命令行操作能力和至少一门编程语言的基础,但不要求你有任何CI/CD经验。
1.3 持续集成与持续交付(CI/CD)的核心价值
在传统开发模式中,团队经常面临“集成地狱”——开发数周后合并代码,冲突不断、Bug频出、修复成本极高。CI/CD正是为了解决这些痛点而生。
持续集成(Continuous Integration, CI)的核心思想是:频繁地(每天多次)将代码合并到主干,并自动运行构建和测试。其价值在于:
- 尽早发现问题:每次提交都触发构建,编译错误、单元测试失败能在10分钟内暴露,而不是在代码Review或上线前才发现。
- 减少集成痛苦:小步快跑,每次变更的diff很小,冲突解决简单,集成成本大幅降低。
- 增强代码信心:主干始终保持可部署状态,团队成员可以放心地基于最新代码开发。
持续交付(Continuous Delivery, CD)则在CI的基础上,将自动化部署到类生产环境,确保代码随时可以一键发布到生产。更进一步,持续部署(Continuous Deployment)则完全自动化发布流程,代码通过所有测试后自动上线。
以一个实际场景说明:假设你的团队有5个后端开发,每人每天提交2次代码。没有CI时,每周五合并代码需要花费一天时间解决冲突和修复集成Bug。引入CI后,每次提交自动构建,冲突在当天就被发现并解决,周五的“合并日”彻底消失。这就是CI/CD带来的直接效率提升。
1.4 整体学习路径与实战项目预览
本课程共30章,分为五个阶段,每个阶段都有明确的学习产出:
| 阶段 | 章节范围 | 核心主题 | 实战产出 |
|---|---|---|---|
| 第一阶段 | 第1-5章 | Git进阶、CI/CD概念、Jenkins安装配置 | 本地Jenkins环境,第一个Freestyle任务 |
| 第二阶段 | 第6-12章 | Jenkins Pipeline语法、共享库、多分支流水线 | 订单服务的声明式Pipeline(构建+单元测试) |
| 第三阶段 | 第13-20章 | GitLab CI/CD、Runner管理、缓存与artifact | GitLab CI流水线,实现MR触发测试 |
| 第四阶段 | 第21-26章 | Docker镜像构建、私有仓库、K8s部署 | 流水线自动构建镜像并部署到K8s |
| 第五阶段 | 第27-30章 | 质量门禁、安全扫描、监控告警、综合实战 | 完整生产级CI/CD平台,含SonarQube+监控 |
实战项目预览——“电商订单服务”:这是一个典型的微服务应用,包含以下组件:
- 订单服务(Spring Boot):提供REST API,使用MySQL存储数据,Redis缓存热点数据。
- 前端管理台(Vue.js):用于查看订单、管理商品。
- 基础设施:Docker Compose用于本地开发,Kubernetes用于生产部署。
在课程推进过程中,你将逐步为这个项目添加:多分支流水线(develop/main)、自动化单元测试与集成测试、SonarQube代码质量检查、Docker镜像构建与推送、Kubernetes滚动部署、版本回滚机制。最终,你只需执行一次git push,就能在15分钟内完成从代码到生产环境的全自动交付。
1.5 常见误区与总结复盘
在开始正式学习之前,先了解初学者最容易踩的坑,可以帮你少走弯路:
| 常见误区 | 错误认知 | 正确理解 |
|---|---|---|
| 误区一:工具至上 | “只要装了Jenkins/GitLab,就有CI/CD了” | 工具只是起点,流程设计、团队协作、自动化脚本才是核心 |
| 误区二:流水线万能 | “流水线越复杂越好,把所有步骤都塞进去” | 流水线应保持简洁清晰,过长的流水线难以维护和排障 |
| 误区三:忽视环境一致性 | “开发环境能跑就行,测试环境无所谓” | 环境不一致是“在我机器上能跑”的根源,必须用容器化统一 |
| 误区四:跳过测试 | “为了赶进度,先跳过自动化测试” | 测试是质量门禁的核心,跳过测试等于放弃CI/CD的意义 |