CI/CD

发布时间 2023-05-24 15:28:02作者: ArMinLi

概述:软件开发周期中需要一些可以帮助开发者提升速度的自动化工具。其中工具最重要的目的是促进软件项目的持续集成与交付。通过CI/CD工具,开发团队可以保持软件更新并将其迅速的投入实践中。CI/CD也被认为是敏捷开发的最重要实践。

持续集成(CI)

概述:【持续集成指的是,频繁地(一天多次)将代码集成到主干】

  • 持续集成(Continuous integration,简称CI),一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建 (包括推送代码,自动化集成,自动化测试,返回结果) 来验证,从而尽早地发现集成错误。

  • 整体流程:推送代码 -- > 集成代码 -- > 构建 --> 代码测试 -- > 反馈结果

  • 持续集成的最终目的就是 让产品可以快速迭代,同时还能保持高质量,简化工作流程

持续交付(CD)

概述:【持续 将通过持续集成后的代码进行手动部署】

  • 持续交付(Continuous Delivery, CD)是一种软件工程的手段,让软件在短周期内产出,确保软件随时可以被可靠地发布。其目的在于更快、更频繁地构建、测试以及发布软件。通过加强对生产环境的应用进行渐进式更新,这种手段可以降低交付变更的成本与风险。一个简单直观的与可重复的部署过程对于持续交付来说是很重要的。

  • 整体流程:推送代码 -- > 集成代码 -- > 构建 --> 代码测试 --- > 反馈结果 --> 测试 --> 手动 --> 部署到生产

  • 持续交付指的是在持续集成后的环境基础之上,将代码部署到预生产环境上。

持续部署(CD)

概述:【基于 集成 交付之上的,部署和交付的区别在于 无论何时 代码都是可以部署的 没有问题的】

  • 持续部署(Continuous Deployment,缩写为 CD)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境;持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。

  • 持续部署指的是持续交付的下一步,指代码可以在任何时刻都是可以部署的 没问题的,最后部署到生产环境下的过程

  • 整体流程:推送代码 -- > 集成代码 -- > 构建 --> 代码测试 --- > 反馈结果 --> 测试 --> 自动 --> 部署到生产

集成 & 交付软件

Ps 典型的部署流水线,CD 流水线由几个不同的阶段组成; 一个工具不能满足所有这些步骤。