使用 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 的按钮发布,整个自动化流程完毕。

相关文章
|
3月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
473 0
|
1月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
138 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
8月前
|
监控 jenkins 测试技术
Ansible与Jenkins:自动化工具的对比
Ansible和Jenkins是自动化领域的两大巨头。Ansible专注于配置管理和任务自动化,采用无代理架构,使用YAML定义配置,具有幂等性和可扩展性。Jenkins则擅长持续集成和持续交付(CI/CD),支持丰富的插件生态系统,适用于自动化构建、测试和部署。两者各有优势,Ansible适合配置管理与大规模部署,Jenkins则在CI/CD方面表现出色。结合使用可创建更强大的自动化工作流,提升团队生产力和软件质量。选择工具时应根据具体需求决定。
|
10月前
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
184 5
|
12月前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
930 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
12月前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
12月前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
539 2
|
12月前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
12月前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
356 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
|
12月前
|
运维 监控 jenkins
运维自动化实践:利用Jenkins实现高效CI/CD流程
【10月更文挑战第18天】运维自动化实践:利用Jenkins实现高效CI/CD流程

推荐镜像

更多