持续集成

1.集成的概念

1.1.什么是集成

在实际的软件开发中,常常会有如下两种场景:

  • 1.现在有一个电商平台开发,由于平台需要开发的某块较多,此时需要不同的开发人员开发不同的模块,最后将所有人开发好的代码集成到一个系统中,集成完毕后需要对其进行部署上线
  • 2.随着时间的推移,该系统无论是bug修复、还是新功能开发,后续都需要对系统进行不断的更新迭代

1.2.项目软件开发过程

CI/CD持续集成概念(一)_持续交付

2.持续集成的概念

2.1.什么是持续集成

持续集成指的是频繁地,一天多次将代码集成到主干
CI/CD持续集成概念(一)_持续交付_02

2.2.使用持续集成带来的好处

  • 1.快速发现错误,每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易
  • 2.节省人力成本
  • 3.加快软件开发进度
  • 4.实时交付

2.3.持续集成的目的

让产品可以快速迭代,同时还能保持高质量

它的核心措施是,代码集成到主干之前,先进行自动化测试,只要有一个测试用例失败,就不能集成,当然持续集成并不能完全的消除bug,而是让他们非常容易发现和改正

2.4.什么情况下使用持续集成

如果项目开发的规模比较小,软件集成不是问题,但是如果项目很大,需要不断添加新功能,或不断的升级产品。则需要进行反复集成,这个时候就需要用到持续集成来简化我们的工作

3.持续交付的概念

3.1.什么是持续交付

持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境,也就是在开发写好代码之后部署到生产环境中的过程

持续交付:代码开发–单元测试–合并代码–测试–手动–部署到生产

首先将代码编码提交到gitlab仓库,再由jenkins拉取代码,jenkins拉取代码的方式分为手动、自动、定时,常用的为手动,拉到本地后,jenkins再去调用插件去构建、测试,最后将结果返回给开发人员,测试会进行两轮测试,第一轮是测试代码的质量,第二轮测试会进行代码的功能测试最后部署到正式环境

CI/CD持续集成概念(一)_持续交付_03

4.持续部署

持续部署时持续交付的下一步,指代码在任何时刻都是可部署的,最后将部署到生产环境的过程自动化。

持续部署和持续交付的区别就是最终部署到生产环境是自动化的,持续部署指的是将程序部署到正式环境。

持续部署:代码开发—单元测试—合并代码—测试—自动—部署到生产

开发写好代码上传到gitlab,jenkins从gitlab上拉取代码,然后通过各种插件对代码进行测试,对代码进行质量检测,没问题之后部署到正式环境
CI/CD持续集成概念(一)_持续集成_04

5.持续集成实施流程

根据持续集成的设计,代码从提交到生产,整个过程有以下几步

首先提交代码到gitlab,jenkins获取代码然后通过各种插件对代码进行测试,测试完成后就将源码编译成war包,在通过黑盒测试将所有功能进行检测,各项功能都完成后进行部署,部署成功后,如果需要回退就进行回退。

CI/CD持续集成概念(一)_生产环境_05

常见的持续集成实施流程

第一种适用于正式环境,先将代码进行测试然后统计开发,并打标签,然后拉取标签进行编译然后部署

第二种适用于测试环境,直接拉取标签测试编译部署
CI/CD持续集成概念(一)_持续交付_06