1.3.2 CI/CD 系统流程化
CI(Continuous Integration,持续集成)与 CD(Continuous Deployment,持续部署)两者整合体现的企业持续交付(Continuous Delivery)的能力。
在互联网快速迭代,快速 MVP(Minimum Viable Product,最简单化可实行产品)试错环境下,如果需求不断积压,新特性的代码得不到及时交付,进而影响线上业务。 CI/CD 体系是否高效,流水线是否敏捷,将直接关系到业务迭代的效率。
目前,CI/CD 典型的工具链包括持续集成、持续交付、持续部署与基础工具类,Jenkins 和 Gitlab 已成为流程中的核心工具,结合容器技术、镜像仓库、容器编排系统等各类工具链,已成为企业组织效率提升必不可少的基础支撑。
图 1-4 CI/CD 典型工具链
总结 CI/CD 的优点:
- 避免重复,节省人力:集成、合并代码、配置、测试,这些重复性的工作每次发布都要重新频繁地进行,使用 CI/CD 把这些工作全部自动化,大大解放了生产力。
- 提升标准化程度:很多企业有测试环境、预发环境、正式环境,除环境问题,还存在分支模型问题,有的团队是主干分支、有的是特性分支,这些开发的差异性导致运维和管理成本急剧上升。通过 CI/CD 平台,所有的环境和分支模型都被平台化,开发人员无需关注任何细粒度的底层操作,发布效率大大提升。
- 提升交付质量:配合 CI 工具链中的项目管理、测试用例、代码审查等扩展功能,会大幅提升代码交付的质量。同时 CD 流程中灰度发布、分批发布、金丝雀发布等多种部署校验形式,也能大幅提升交付质量。