JAVA持续集成

 

目录

 

1. 持续集成总体介绍 

2. harbor介绍

3. rancher介绍

4. 部署流程

5. 具体功能实现 


1. 持续集成总体介绍 

 

      持续集成的作用是快速有序部署、记录每次发版的相关信息,让产品的迭代稳定有序。版本号一般有四位1.0.0.0,第一位是主版本号,第二位是子版本号,第三位是修正版本号,前三位是公开对外的版本号,最后一位是内部发版的流水号,最终内部测验成功对外发布时去除最后一位。

       涉及的组件包括git+maven+jenkins+Nexus+docker+rancher+harbor,其中rancher、harbor是部署docker镜像的非必须,nexus是jar包的私服。普通小项目使用git+maven+jenkins就足够了。采用nexus、harbor做私有仓库的目的是存储每次发版的启动包,方便版本回滚,多环境部署等。git、maven、jenkins、nexus这四个组件默认开发是很熟悉的,自动部署是必须要用到的基础组件不做特殊介绍。下面主要介绍介绍下rancher、harbor.

2. harbor介绍

        harbor是docker最好用的私有镜像仓库,提供了对镜像的分类管理、仓库间的快速复制拉取能有效的解决远程仓库间的镜像同步问题。docker镜像仓库为Registry,但原生的Registry的UI简单,harbor与nexus3.*都对其做了封装,相比harbor的封装来说nexus3.*更贴切的形容应该是集成了Registry,所以方便程度、可视化效果层面远不如harbor专业。今天就主要对harbor做个使用层面的介绍。

harbor下载地址:https://github.com/docker/compose/releases

harbor安装参考:https://blog.csdn.net/qq_39314099/article/details/105707689

        harbor2.*的安装很简单,解压启动大功告成。从效果图上我们可以清晰的看出harbor界面管理的强大,对镜像做了合理的分类展现,也对仓库间的镜像复制推送提供了界面化支持。我们可以很方便的把我们公有的、私有的镜像按项目分开,也可以给各个项目设置登录权限,方便对项目做权限管理。

3. rancher介绍

       有了仓库就该对docker做部署了,对docker的部署,最轻量的工具是rancher.rancher的安装很简单,docker pull rancher/rancher . 直接运行镜像就行,不多做介绍了。

        rancher由大类到小类分别是环境、应用、服务。环境是部署环境比如开发环境、测试环境、正式环境,不同环境间的主机是互相隔离的,保障了不同环境的独立性。每个环境下可以细分 一些应用,比如我们简单分为开发代码、数据库组件、其他组件如zookeeper、filebeat、nacos等,应用就是对服务的分类,相当于小组的概念。服务就是对单一容器的管理,概念差不多雷同镜像,启动服务就会操作对应的docker容器。另外基于环境我们可以添加N多台主机,主机的添加可比较简单,选择基础架构下的主机菜单就能为rancher的对应环境添加主机,主机上会清晰的展现出正在运行的docker容器,并且直接在上面操作容器。因此rancher很适合中小公司用来管理docker,它直观、功能齐全、性能稳定。

4. 部署流程

         rancher联通harbor仓库,jenkins添加rancher插件,java调用jenkins接口完美的实现了界面控制发版的逻辑。从大方向来说基础的持续集成包括以下几大流程:

         1) 生成启动包  生成的过程是开发提交git --> jenkins打包启动 --> 测试人员测试 -->定版/回滚 -->存入仓库

         2) 附加需要的其他文件与启动包一起构成升级启动的准备条件如sql、配置文件更改内容等

         3) 基于生成的启动包,启动对应环境,完成代码迭代升级,具体流程如下。

5. 具体功能实现 

基础模块包括     模块管理  --录入全部模块     数据源管理     jenkins管理     产品管理 主功能点包括     研发提交  --开发提交代码,提交内容包括代码、sql     提交查询  --开发人员可以查看并作废自己的提交     测试发版  --根据开发提交内容,在测试环境编译并启动           解释:主要过程就是jenkins的编译、部署、上传私服     正式发版  --将本次测试发布的最高版本更名为正式版存入私服           解释:主要过程就是jenkins更改jar包名换成正式版按本的名字其推送到私服     部署      --根据正式发版产生的启动项代赔该环境需要的部署文件选择对应jenkins启动路径,进行环境部署或更新          解释:主要过程就是jenkins从私服拉取对应启动包进行启动部署     回滚      --发版失败后根据部署应用退回到上一版,因为私服里存储了各个版本的启动包回退的过程就是找前一个版本的包     结果查询  --查询部署是否成功,失败提供失败日志     版本查询  --查询历次发版内容 从各个功能看,虽然细节较多,难度并不大