1. 概述
本文主要介绍持续集成的搭建方式,采用Docker的方式去搭建Jenkins环境,另外会涉及到SpringBoot和Git等技术。
2. 什么是持续集成
传统的软件开发流程如下:
1、项目经理分配模块给开发人员
2、每个模块的开发人员并行开发,并进行单元测试
3、开发完毕,将代码集成部署到测试服务器,测试人员进行测试
4、测试人员发现bug,提交bug、开发人员修改bug
5、bug修改完毕再次集成、测试
但是这样就出现了如下问题:
1、模块之间依赖关系复杂,在集成时发现大量bug
2、测试人员等待测试时间过长
3、软件交付无法保障
那我们又该如何解决上述问题呢?可以采用持续集成来解决上述问题,那持续集成又是什么呢?大师Martin Fowler对 持续集成 是这样定义的:
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
持续集成的好处:
1、自动化集成部署,提高了集成效率。
2、更快的修复问题。
3、更快的进行交付。
4、提高了产品质量。
本文通过下图的模式进行持续集成的方案:
-
开发人员开发代码,推送到Git服务器中
-
当Git服务器中的代码发生变化时,会触发配置在Git服务器中的钩子地址,通知到Jenkins
-
Jenkins把代码下载下来,通过Maven,build成Docker镜像
-
再把Docker镜像推送到Docker仓库中
-
再从Docker仓库中构建出可以运行的Docker容器
接下来,我们介绍下如何构建上述环境。