CI/CD
引入
传统软件开发过程中,在“合并日”将各分支代码集成代码时会引发的问题:集成地狱
集成地狱是指当交付团队的成员集成其单个代码时,生产点。在传统的软件开发环境中,这种集成过程很少是流畅和无缝的,而是导致数小时或数天的修复代码,以便它最终能够集成。持续集成 (CI)旨在通过启用和鼓励团队成员经常集成(例如每小时或至少每天集成)来完全避免这种情况。
概念
CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。通过运维和开发团队相互合作,让持续自动化和持续监控化贯穿整个项目生命周期(集成-->测试-->交付-->部署)。关联事项通常被称为CI/CD管道。
核心概念:
- 持续集成
- 持续交付
- 持续部署
CI持续集成(Continuous Integration)
CI/CD 中的“CI”始终指持续集成,它属于开发人员的自动化流程。成功的 CI 意味着应用代码的新更改会定期构建、测试并合并到共享存储库中。该解决方案可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。
通过自动化测试(单元测试和集成测试)加强代码集成的频率,并测试新代码是否与现有代码发生冲突。并能快速轻松的修复它
CD
CI/CD 中的“CD”指的是持续交付和/或持续部署,这些相关概念有时会交叉使用。两者都事关管道后续阶段的自动化,但它们有时也会单独使用,用于说明自动化程度。
CD 持续交付(Continuous Delivery)
前置条件: CI构建并完成测试后
可持续将已验证的代码交付到仓库,该代码可随时部署到生产环境去。
CD 持续部署(Continuous Deployment)
是持续集成;交付的延申。自动将交付的应用部署到生产环境。能及时收到用户反馈,降低部署的风险。
特点
- 自动化
- 高效率
- 低风险
- 实时性
- 前期投入成本高