天天看点

Continuous Integration 和 Continuous Delivery 常用的技术工具

持续集成、持续交付、持续部署的基本含义

持续集成(Continuous Integration,CI)是一种软件开发实践。在持续集成中,团队成员频繁集成开发好的代码,一般每位成员至少每天集成一次,当然也可以多次。每次集成会经过自动化构建(包括静态扫描、安全扫描、自动化测试等过程)的检验,以尽快发现集成错误。

持续交付(Continuous Delivery)是指频繁地将软件的新版本交付给质量团队或者用户,以供评审,如果评审通过,代码就进入下一阶段。

持续部署(Continuous Deployment)是持续交付的下一步,指的是代码通过评审之后,自动部署到测试环境中或者生产环境中。

为什么需要持续集成(CI)、持续交付(CD)、持续部署呢?

持续突出的就是一个“快”字。可持续、快速迭代的软件过程是当今主流的开发要求。从产品规划,到快速开发实现,到获得用户的快速响应和反馈,处处都要“快”。尤其在互联网行业,“快”应成为一种竞争力。这一切要求软件开发企业具备快速响应的能力,这正是推动持续集成、持续交付、持续部署的原动力。

持续集成、持续交付、持续部署的过程

Continuous Integration 和 Continuous Delivery 常用的技术工具

通过Git或者SVN构建一个统一的代码仓库。开发人员持续提交自己的修改,自动触发编译,自动集成,进行自动化测试,及早反馈集成过程中的问题,就能更好地防止出现平时不集成、集成就出现问题的现象。

通过自动化的持续集成,把管理流程固化;保证集成的有序性、可靠性;减少版本发布的不合理性(开发或者测试手动打包,可能一天打多个包,更新多次,测试不充分),保证版本可控,问题可追溯(至于哪个版本出现的问题可以回溯)。

一旦把这个持续集成的过程固定下来,形成一个自动化过程,就具备了持续集成的能力,软件交付的可靠性就大大增强,这就是一种竞争力。过程自动化,不仅仅减少了人工作业,而且降低了出错率,提高了速度,自然就会节省成本。

持续集成、持续交付、持续部署过程中的常用技术工具

  • Rancher
  • Jenkins
  • Docker compose
  • Maven
  • GitLab
  • Gerrit
  • Sonar
  • Robot
  • Ceph
  • Spring Boot
  • React
  • Redux
  • MySQL
  • MyBatis
  • Kibana、Logstash、Elastic

持续集成、持续交付的常见流程

Continuous Integration 和 Continuous Delivery 常用的技术工具

流程说明:

继续阅读