CI/CD简介及常用工具

什么是持续集成(CI-Continuous integration)

  • 持续集成是指多名开发者在开发不同功能代码的过程当中,可以频繁的将代码行合并到一起并且相互不影响工作。 即一个让开发人员将工作集成到共享分支中的过程,从而增强了协作开发。频繁的集成有助于解决隔离,减少每次提交的大小,以降低合并冲突的可能性。
  • 为了鼓励CI实践,一个强大的工具生态已经构建起来。这些系统集成了VCS库,当检测到更改时,可以自动运行构建脚本并测试套件。集成测试确保不同组件功能可以在一个组内兼容,使得团队可以尽早发现兼容性的bug。因此,持续集成所生产的构建是经过充分测试的,并且是完全可靠的。

什么是持续交付(CD-Continuous Delivery)

  • 持续交付是持续集成的扩展,它将构建从集成测试套件部署到预生产环境。这使得它可以直接在类生产环境中评估每个构建,因此开发人员可以在无需增加任何工作量的情况下,验证bug修复或者测试新特性。一旦部署到staging环境中,就可能需要进行额外的手动和自动测试。

什么是持续部署(CD-continuous deployment)

  • 持续部署则更进一步。一旦构建在staging环境中通过了自动测试,持续部署系统将会自动将它部署到生产服务器上。换言之,每个通过测试的构建都是实时的,可供用户及早反馈。这使得团队可以不断发布新特性和修复bug,并以其测试流程提供的保证为后盾。

CI/CD的优势

  • 快速反馈回路
  • 增加可见度
  • 简化故障排除
  • 软件质量更高
  • 集成问题更少
  • 有更多的时间专注于开发

实践指导原则

  • 对CI / CD流水线负责
  • 确保部署一致
  • 提交小的、渐进的更改
  • 良好的测试覆盖率(单元测试=》集成测试=》UI测试)

实践常用工具

  • GitLab CI 是 GitLab 为了提升其在软件开发工程中作用,完善 DevOPS 理念所加入的 CI/CD 基础功能。可以便捷的融入软件开发环节中。通过 GitLab CI 可以定义完善的 CI/CD Pipeline。实践
  • Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。教程
  • Azure DevOps可以理解成 JIRA + GitHub + Jenkins + Test Management + Nuget/Maven/NPM等大平台的一种合体产品,但又比这几款产品更为灵活和强大。官网 & 教程
  • Travis CI是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜。目前大多数的github项目都已经移入到Travis CI的构建队列中,据说Travis CI每天运行超过4000次完整构建。教程
  • Concourse CI该系统由微服务组成,每个作业在一个容器中运行。它独家提供的一个最有用的特性是:从本地系统(可进行本地修改)运行一项作业的能力。这意味着你可以在本地进行开发(假设你已经连接到 Concourse 服务器),并像在实际构建管道中那样运行构建。此外,你还可以从本地系统重新运行失败的构建,并注入特定的更改来测试修复程序。教程
  • GoCD是一个开源的持续集成和持续交付系统,可以在持续交付过程中执行编译,自动化测试,自动部署等,和Jenkins类似,GoCD的基础架构由Server和Agent组成。教程
  • Spinnaker是一个开源的多云连续交付平台,用于以高速度和信心发布软件更改。它是在Netflix上创建的,已经在数以百万计的部署中经过数百个团队的生产测试。它结合了强大且灵活的管道管理系统以及与主要云提供商的集成。官网 & 源代码(https://spinnaker.io/)
  • Screwdriver 是一个非常简单的工程。它使用微服务方法,并依赖 Nomad、Kubernetes 和 Docker 等工具作为执行引擎。对于到 AWS 和 Kubernetes 的部署,它提供了一个很好的部署教程,但是,一旦进行中的 Helm Charts 完成,它就可以得到改进。官网 & 源代码

参考及补充知识点:

流程顺序:持续集成=》持续交付=》持续部署
什么是 CI/CD?
持续集成-CI/CD流程图
从0到1了解CI/CD:初学者入门必备
项目开发中的dev, test, prod , staging 环境是什么意思
谈谈持续集成,持续交付,持续部署之间的区别

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星火撩猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值