CI/CD持续集成与持续部署
CI(持续集成,Continuous Integration)
-
干什么? 把大家写的代码——不管是一两行新功能,还是修个小 bug——都自动地合并(集成)到「主干」代码库里。
-
怎么做? 每当有人提交(push)代码,CI 系统就会自动:
- 拉取最新版代码
- 执行一系列自动化测试(比如单元测试、集成测试)
- 报告测试结果:通过就告诉大家「OK」,失败就马上提醒开发者去修。
-
好处:
- 早发现问题,不会拖到最后一次性爆炸式冲突。
- 保证主干始终是「能跑、能测、没大问题」的状态。
CD持续交付/持续部署,Continuous Delivery/Deployment)
CD 在 CI 后面,目标是「把测试过的代码自动、快速地推送到生产环境(让真实用户能用)」。
- 持续交付(Delivery):自动把新版本打包好,放到可以随时上线的「候选版本库」,但还要人工点一下「上线」按钮。
- 持续部署(Deployment):在持续交付基础上,再把人工那一步也自动化——测试通过后就直接上线给用户,用不到人工干预。
-
CI = 食材准备 & 品质检验
- 把肉饼、面包、生菜等原料都集中到流水线,自动称重、消毒、简单烹饪,然后机器测试口味是否合格(模拟咬一口)。
-
CD = 打包 & 送上餐桌
- 合格的汉堡自动装盒(打包),
- 如果是「持续交付」,打包好后放到出餐口,服务员等你按键再上餐。
- 如果是「持续部署」,打包完就直接送到你面前,完全自动化。
- 速度更快:不用手动一个个测试、打包、部署。
- 风险更低:小步快跑,遇到问题能马上发现并回滚,不会一次改太多修不过来。
- 可追溯:每一次上传、测试和上线都有日志,出了问题能知道是哪次提交、哪个环节出错。
CI/CD 就是一整套自动化流程,把「写码 → 测试 → 打包 → 上线」各个环节串起来,降低人工干预,让产品更新更快、更稳、更可靠。