开发人员遵循称为软件开发生命周期(SDLC )的流程/模型来开发软件项目。传统的SDLC具有不同的发展阶段
- 规划–记录并确定项目结构和进度表。
- 分析–分析项目需求并收集资源。
- 设计–使用体系结构和接口设计来设计软件模型。
- 实施–通过考虑设计和要求来开发实际产品。
- 测试–测试构建的,修复的错误和bug,并重构代码。
- 部署和维护–部署和监视该软件以进行进一步的增强。
特征 –
上图中显示的传统SDLC的概述以下列方式工作。
- 不同的开发团队维护不同的代码存储库。
- 构建和集成团队集成了代码。
- 集成代码被编译为一个包。
- 包含说明的软件包将发送给运营团队。
- 运营团队将程序包推送到测试环境中,然后由测试团队对程序包进行测试。
- 测试团队将任何可能的问题通知开发团队,否则会为生产发布提供绿色信号。
但是,在这个快速适应的世界中,实践上述过程和模型(例如瀑布模型)并没有价值,在该模型中,我们必须等到最后才能收到功能性产品(通常在周期结束时交付)。
CI / CD定义:
那就是CI / CD抢救的地方。它更多是一种文化和实践,而不是工具,但是CI / CD是什么?
“CI/CD stands for Continuous Integration and Continuous Delivery (or Continuous Deployment), it is about how an Integrated code on a shared repository is used to release software to production multiple times a day with the help of automation.”
持续集成 :
持续集成是指开发人员如何在自动化的帮助下一天多次使用共享存储库集成代码。
连续交付:
持续交付是指将软件自动发布到测试或生产环境。
特征 –
上图显示了由于以下原因与传统SDLC不同的持续集成和持续交付过程,
- 开发人员在共享存储库上管理代码。
- 编译后,将执行自动化单元和UI测试。
- 运营团队需要照顾自动脚本,这些脚本会进一步进入测试环境。
- 执行测试,并在批准后将软件发送到生产环境。
在这里,持续集成可以称为构建管道,而持续交付可以称为发布管道。
持续部署:
持续部署是指无需人工干预即可自动将软件发布到生产环境。
连续部署是一项进步,它减少了操作和测试团队将软件部署到生产中的手动工作,因为它会在自动验收测试后自动部署到生产中。
特征 –
CI / CD通过以下方式帮助快速而可靠的软件开发。
- 自动化和快速的代码集成。
- 由于周期和迭代时间短,因此错误检测和响应速度很快。
- 不太容易发生人为错误。
- 由于采用了自动脚本编写,因此比遵循手动说明要快。
- 一天可以完成几次部署。
此外,DevOps中的CI / CD致力于统一流程和自动化,它有助于充当开发团队和运营团队之间的桥梁,以使流程更加可靠和适应性强。