CI/CD的介绍

原文链接

你知道什么是CI/CD吗?不懂?五分钟让你彻底理解!

CI(持续集成)/CD(持续部署)

持续集成是借助工具对软件项目进行持续的自动化的编译打包构建测试发布,来检查软件交付质量的一种行为。
持续部署是基于持续交付的优势自动将经过测试的代码推入生产环境的过程。

通过CI/CD流水线,软件研发可以实现从代码签入、测试、构建和部署直至生产阶段都在流水线中向前推进。此概念之所以高大上,是因为一旦实施了流水线,就可以将其部分或全部自动化,从而加快开发流程并减少错误。换句话说,CI/CD流水线使企业可以更轻松地应对软件的自动、快速、持续交付。

CI/CD 阶段:理解参与者、流程、技术

企业应用程序开发参与者通常由开发人员,测试人员/QA工程师,运维工程师以及SRE(站点可靠性工程师)或IT运营团队组成。他们紧密合作,目标是高质量软件交付。
CI/CD是两个独立过程的组合:持续集成和持续部署。下面列出了每个步骤中的主要步骤

在这里插入图片描述

持续集成

持续集成(CI)是构建软件和完成初始测试的过程。持续部署(CD)是将代码与基础设施相结合的过程,确保完成所有测试并遵循策略,然后将代码部署到预期环境中。当然,许多公司也有自己特有流程,但主要步骤如下。

CI:代码提交阶段

在这里插入图片描述
参与者:开发工程师,数据库管理员(DBA),基础架构团队

技术:GitHub,GitLab,SVM,BitBucket

流程:代码提交阶段也称为版本控制。提交是将开发人员编写的最新代码变更发送到代码存储库的操作。开发人员编写的代码的每个版本都被无限期地存储。

CI:静态代码检查阶段

参与者:开发工程师,数据库管理员(DBA),基础架构团队

技术:GitHub,GitLab,SVM,BitBucket

流程:开发人员编写代码并将其推送到存储库后,系统将自动触发以启动下一个代码分析过程。开发过程中存在这种情况:提交的代码可以构建成功,但在部署期间构建失败。因此必须检查代码中的静态策略。这是一个快速检查过程,其中检查代码是否存在语法错误。

CI:构建

在这里插入图片描述

参与者:开发工程师

技术:Jenkins

流程:持续集成过程的目标是提交的代码持续构建为二进制文件或构建产物。

CI:测试阶段

在这里插入图片描述
参与者:测试人员、QA

技术:Selenium,Appium,Jmeter,SOAP UI,Tarantula

过程:发布构建过程后的一系列自动测试将验证代码的准确性。此阶段可帮助避免生产中的错误。
1)集成测试
2)性能和压力测试

持续部署

在这里插入图片描述
参与者:基础架构工程师,SRE,运维工程师

技术:Spinnaker,Argo CD,Tekton CD

CD:Bake

Baking是指在生产时使用当前配置从源代码创建不可变的镜像实例。这些配置可能是数据库更改和其他基础结构更新之类的事情。

CD:部署

首先将部署移至测试阶段,然后最终移至生产环境,以进行批准和检查。

CD:验证

这也是团队优化整个CI/CD流程的关键位置。因为现在已经进行了如此多的测试,所以失败很少见。但是,此时必须尽快解决所有故障,以最大程度地减少对最终客户的影响。团队也应该考虑使流程的这一部分自动化。

CD:监控

参与者:站点可靠性工程师(SRE)、运营团队

技术:Zabbix、Nagios、Prometheus、Elastic Search、Splunk、Appdynamics、Tivoli

过程:为了使软件发行版具有故障安全性和健壮性,在生产环境中跟踪发行版的运行状况至关重要。应用程序监视工具将跟踪性能指标,例如CPU利用率和发行版延迟。日志分析器将扫描由底层中间件和操作系统产生的大量日志,以识别行为并跟踪问题的根源。此外,监视阶段可帮助组织收集有关其新软件更改如何为收入贡献的情报,帮助基础设施团队跟踪系统行为趋势并进行容量规划。

CD:反馈和协作工具

在这里插入图片描述参与者:站点可靠性工程师(SRE)、运营和维护团队。

技术:JIRA、ServiceNow、Slack、电子邮件、Hipchat。

过程:DevOps团队的目标是更快地持续发布,然后不断减少错误和性能问题。这是通过不时地通过发送电子邮件向开发人员、项目经理提供有关新版本的质量和性能的反馈。通常情况下,反馈系统是整个软件交付过程的一部分。因此,交付中的任何更改都会频繁地录入系统,以便交付团队可以对它采取行动。

持续集成(CI) / 持续部署(CD)的优势

1)持续集成/持续交付是现代软件开发周期的基础

2)在传统的软件开发方法中,每个功能更新或修复错误都会每隔一段时间进行发布,这显著增加了在部署时耦合更改的机会

3)持续集成/持续交付可以解决所有这些问题,并使整个过程更易于管理和高效。

4)在现代软件开发实践中,持续集成(CI)/持续交付(CD)是构建、测试应用程序并将其部署到生产中的基础。

5)持续交付(CD)有助于降低风险,并通过自动化来自不同项目开发人员的多个代码更改来实现生产一致性。

6)另一方面,持续交付使开发人员能够无缝地将集成代码交付到生产中,从而提供快速有效的自动化流程,以向客户轻松发布新功能和更新

7)持续集成/持续交付管道的优势:

  • 管理较小的代码更改
  • 故障隔离可在短期内防止错误
  • 缩短平均解决时间(MTTR)
  • 提高测试可靠性
  • 加快释放速度
  • 减少积压
  • 推动客户实现
  • 加强团队的透明沟通和责任感
  • 降低成本
  • 易于维护和更新
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值