服务自动化部署
完成Jenkins的安装配置后,就可以使用Jenkins工具来自动化集成、部署微服务项目了,其具体使用方式如下。
1.构建新任务
在Jenkins主页面,单击左侧的“新建”按钮,将会跳转到任务构建界面,其效果如图1所示。
图1 创建构建任务
在任务构建页面中填写需要自动化集成、部署的任务名称,然后选中“构建一个maven项目”,最后单击“OK”按钮就会自动跳转到该任务配置页面,如图2所示。
图2 构建任务配置界面
从图2中框选部分内容可以看出,想要使用Jenkins完成自动化构建、部署工作,还需要对构建任务分步骤进行配置,其主要配置项的配置步骤如下。
(1)配置源码仓库地址
使用Jenkins自动构建任务,就需要从源码仓库(这里使用的是GitHub)自动拉取此次构建任务的项目源码。在“源码管理”中选择“Git”,并在“Repository URL”中输入该项目所在的GitHub源码地址(这里配置的地址就是第9章介绍的商城管理微服务架构项目microservice_mallmanagement的源码地址),如图3所示。
图3 配置GitHub源码地址
小提示:
读者在在配置GitHub源码地址时,一定要保证GitHub代码仓库中生成和部署的服务镜像前缀与自己搭建的本地私有仓库服务地址一致。如果读者在配置时,直接使用了第9章介绍的商城管理微服务项目的源码地址进行服务构建,那必须确保服务地址为192.168.197.143:5000的本地私有镜像仓库已启动并可用。
(2)构建触发器
构建触发器就是构建任务时的触发规则,用来规定什么时候触发任务的构建。其具体情形如图4所示。
图4 配置构建触发器
从图4可以看出,Jenkins构建触发器提供了多种构建规则,这里针对其中常用的3种构建规则进行介绍,具体如下。
● Build periodically:表示在某个时间点进行自动任务构建,比如“H 2 * * *”表示每天凌晨2点开始执行项目构建(不管项目是否更新);
● Poll SCM:表示每隔一段时间会自动检查更新进行任务构建,比如“*/10 * * * *”表示每10分钟开始检查源码,如果有更新就自动执行构建。
● 当默认没有进行构建触发器配置时,我们可以在对应的任务面板中选择“立即构建”按钮,可以随时进行手工触发任务构建。
(3)服务发布配置
任务构建完成后,可以配置服务部署指令。此示例中,我们将会自动把整个微服务项目自动部署到集群环境下,因此这里就需要进行服务发布配置,其效果如图5所示。
图5 服务发布配置
在Post Steps(服务发布配置)页面,选择“Add post-build step”下拉列表中的“Execute shell”选项,并在命令框中输入需要发布服务的shell指令(这里直接使用10.4.2小节中集群环境下服务发布的命令即可)。为了确保集群环境下服务的正常部署,需要确认集群已经开启并且已经预先自定义好指定网段的网络,同时还要在集群管理节点进行私有仓库登录认证。
完成上述所有步骤的配置后,单击左下角的“保存”按钮就会跳转到该任务主页面,效果如图6所示。
图6 任务主界面
另外,关于构建任务配置界面中的其他步骤,如果有需要,还可以进行相应的配置,这里就不作详细介绍了。
2.自动化部署服务
在任务构建配置页面的构建触发器配置中,如果配置了定期自动构建服务,就不需要再做任何工作了,该构建任务会在指定的触发规则下进行任务的自动构建和部署工作。
为了演示Jenkins自动构建、部署服务的效果,单击任务主界面左侧的“立即构建”按钮后,会触发一次立即构建项目的动作,然后整个服务就会进入自动构建过程。此时我们可以单击“构建历史”中的倒三角,选择“Console Output”选项来查看整个构建过程的输出信息,如图7所示。
图7 构建任务Console Output
选择进入任务对应的Console Output输出信息页面后,效果如图8所示。
图8 Console Output打印信息
该任务初次自动化构建过程会需要一定的时间,当整个任务构建并发布完成后,Console Output控制台就会有构建成功或者失败的提示信息,如图9所示。
图9 任务构建成功信息
从图9可以看出,最终Console Output控制台打印出“Finished:SUCCESS”信息,这就表明通过Jenkins自动集成的商城管理微服务项目microservice-mallmanagement已构建并部署成功。
当使用Jenkins完成整个微服务项目的自动集成、部署后,就可以通过10.4.3小节中介绍的微服务测试方法进行测试,这里就不再演示了。
至此,整个微服务架构体系的开发、测试和部署就已经讲解完毕。在实际开发中,除了这些最基本工作外,还需要考虑整个服务的日志监控、服务安全等问题,这些内容本书就不做进一步说明,有兴趣的读者可以在网上查找资料学习。