开发者学堂课程【基于 Docker 与 Jenkins 实现自动化部署 :使用 Jenkins 自动化部署实现原理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/637/detail/10176
使用 Jenkins 自动化部署实现原理
内容介绍
一、手动部署的流程
二、开发者提交代码
三、Jenkins 获取远程代码
四、自动将源代码实现打包
五、执行 shell 脚本启动
一、手动部署的流程
首先思考一个问题:
你们公司的项目是如何发布的?
答案有许多,最常见的就是手动部署。
下面简单介绍一下手动部署的流程。
首先需要在 porn 文件里指定 spring boot 启动一个入口类的或者打 war 包,先把项目打成一个 jar 包。
输入
C
:
\Users\Administrator\git\mayikt_springboot>mvn package
把这个项目打成一个 jar 包:
[INFO] - - - maven-compiler-plugin:3.7.0:testCompile (default-testCompile) @ mayikt_springboot - - -
[INFO] No sources to compile
[INFO]
[INFO] - - - maven-surefire-plugin:2.21.0:test(default-test) @ mayikt_springboot - - -
[INFO]
[INFO] - - - maven-jar-plugin:3.0.2:jar(default-jar) @ mayikt_springboot - - -
[INFO]Building jar:C:|\Users\Administrator\git\mayikt_springboot\target\mayikt_springboot-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] - - - spring-boot-maven-plugin:2.0.1.RELEASE:repackage (default) @ mayikt_springboot - - -
[INFO] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[INFO] BUILD SUCCESS
[INFO] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[INFO] Total time:6.799 s
[INFO] Finished at:2019-04-25T20:44:27+08:00
[INFO] FIinal Memory:29M/314M
[INFO] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
从而开启一个手动部署 Jar 包达到 target 这个目录.
手动部署项目的时候基本上都是以上这样操作,而且还要将最新代码同步拉取后再打成 jar 包再放到服务器上运行,像这种情况去部署微服务电商项目是非常繁琐的,所以要实现自动化部署。
例如美特教育独创的微服务电商项目是有多个服务的,秒杀服务,订单服务等等。如果逐个进行手动部署的话效率是不高的,所以在微服务的场景下,需要一套自动化的部署流程来维持运行。
二、开发者提交代码
开发者把代码提交到代码管理平台(svn/git,码云等),传统方式是人为拉取代码然后手动打成一个 jar 包然后再上传,这样的流程非常繁琐。
这时候需要一个专门运营的平台:Jenkins
三、Jenkins 获取远程代码
Jenkins:专门去管理项目打包部署完全可以实现自动化的平台
Jenkins 会获取远程代码,远程代码相当于 Jenkins 需要配置连接 git 或者是 svn 的地址。
四、自动将源代码实现打包
如上图所示,点击以后找到配置这一选项,在配置里面有一个专门配置svn或者是git的一个选项:源码管理。
比如git或其它的一些版本控制都可以。通过这样一个方式去实现自动化打包或者自动化运行。
五、执行 shell 脚本启动
开发者在 Jenkins 平台创建自动化任务:
打开 Jenkins,点击任务然后立即构建。日志里面写的非常详细,会写连接的 git 地址,然后进行打包,打包成功之后开始执行 shell 脚本进行启动
打开配置,看一下脚本,脚本的最后一行代码:
Java-jar
是指向打包成功的 jar 包,因为 Jenkins 把 jar 包打包成功之后会自动地执行一个命令。
一句话总结就是,首先搭建一个代码管理的地方,把代码提交后,Jenkins 去连接这个代码管理处(git 或 svn)拿到源代码,Jenkins 自动实现打包,执行 shell 脚本去启动项目,不需要手动进行发布,只需要点击 Jenkins 的按钮发布,整个自动化流程完毕。