WI做为公司内部最重要的系统平台,我们正在慢慢的往微服务、分布式架构进行整体系统升级。 在研发工作中,尤其是在使用了分布式架构和微服务架构中,代码的一体化集成发布,直接关系着整个平台的稳定性和可扩展性。
微服务是现在主流的分布式环境,像百度、Google这种首屈一指的大企业,现在都在微服务架构下面,进行代码开发、流水线集成工作。
那么持续集成是一个什么意思呢?日常开发人员,在开发好代码之后,会上传提交到Git代码仓库进行管理,当要进行版本发布和上线的时候,就需要做代码集成,也就是代码打包的意思,以Java开发的代码为例,代码在开发完成需要上线时,需要拉取最新的代码结构,进行代码编译、上传服务器、运行服务和自动化测试。只有通过这一系列的工作之后,才能真正的发布上线。
那如果没有架构持续进行集成,会是一个什么情况,开发人员每天可能需要花费一半的时间,在代码编译、打包、上传、运行这个过程中。所以代码持续集成,是现在软件工程领域,非常重要的一个环节。
那么应该怎么样进行这个持续集成呢?
以前分享过Gitlab进行代码管理的文章 。持续集成是基于仓库的进一步流水线工作,当研发人员提交代码至Git中央代码仓库之后,集成框架,会收到Git中央仓库发出的一条触发通知:某某某于什么时间,提交了代码至仓库,集成框架收到触发通知之后,在另外的服务器上,自动拉取Git代码仓库的源代码,并在集成服务器上,进行一系列的自动化编译、自动化打包,打包完成之后,自动上传到中央代码库,同时推送到各台服务器,进行自动化部署。这个流程就是CI持续集成。
WI系统使用Java进行开发,我们使用开源的Jenkins框架进行持续集成。当研发人员提交代码之后,Jenkins服务器会收到通知,并自动从代码中央仓库里面拉取最新的源代码,进行代码编译、打包、上传、运行等工作,让研发人员,从环境部署中抽离出来,更专注的进行代码开发。