使用 Jenkins 自动化部署实现原理| 学习笔记

简介: 快速学习使用 Jenkins 自动化部署实现原理。

开发者学堂课程【基于 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 的地址。

 

四、自动将源代码实现打包

image.png

如上图所示,点击以后找到配置这一选项,在配置里面有一个专门配置svn或者是git的一个选项:源码管理。

比如git或其它的一些版本控制都可以。通过这样一个方式去实现自动化打包或者自动化运行。

 

五、执行 shell 脚本启动

开发者在 Jenkins 平台创建自动化任务:

打开 Jenkins,点击任务然后立即构建。日志里面写的非常详细,会写连接的 git 地址,然后进行打包,打包成功之后开始执行 shell 脚本进行启动

image.png

打开配置,看一下脚本,脚本的最后一行代码:

Java-jar

是指向打包成功的 jar 包,因为 Jenkins 把 jar 包打包成功之后会自动地执行一个命令。

一句话总结就是,首先搭建一个代码管理的地方,把代码提交后,Jenkins 去连接这个代码管理处(git 或 svn)拿到源代码,Jenkins 自动实现打包,执行 shell 脚本去启动项目,不需要手动进行发布,只需要点击 Jenkins 的按钮发布,整个自动化流程完毕。

相关文章
|
27天前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
129 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
17天前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
27天前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
19 2
|
29天前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
27天前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
50 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
|
17天前
|
运维 监控 jenkins
运维自动化实践:利用Jenkins实现高效CI/CD流程
【10月更文挑战第18天】运维自动化实践:利用Jenkins实现高效CI/CD流程
|
3月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
80 1
|
3月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
73 0
|
3月前
|
JavaScript jenkins 持续交付
自动化部署与持续集成:使用Jenkins和Docker优化开发流程
【8月更文挑战第31天】在软件开发的世界里,时间就是一切。本文将引导你通过Jenkins和Docker的强大组合,实现自动化部署和持续集成,让你的开发流程如丝般顺滑。我们将从基础设置开始,逐步深入到构建管道,最终实现一键部署的梦想。准备好让你的开发效率飞跃,一起探索这个令人兴奋的旅程吧!
|
3月前
|
jenkins Shell 持续交付
自动化部署:使用Jenkins和Docker实现CI/CD
【8月更文挑战第31天】 本文旨在引导读者了解如何通过Jenkins和Docker来实现持续集成和持续部署(CI/CD),从而优化开发流程,提升工作效率。文章将详细介绍配置Jenkins服务器、创建Docker镜像以及设置自动化构建和部署的步骤。通过实际操作案例,我们将展示如何将代码变更快速部署到测试或生产环境,确保软件质量与发布速度的双重保障。
下一篇
无影云桌面