Jenkins框架原理

1.Jekins定义:

Jenkins是一种持续集成的工具,功能包括:持续的软件版本发布/测试项目和监控外部调用执行的工作。

1.1Jenkins分布式构建架构

      Jenkins使用主/从架构来管理分布式构建。

      主节点:处理调度构建作业,把构建分发到从节点来进行实际执行,监视从节点,并且记录和发布构建产物。

      从节点:按照被告知的工作,即主节点分派的构建作业。配置可分为如下三种情况:

  •  配置一个项目总是在特定的从节点运行
  • 在某个特定类型的从节点运行
  • 让Jenkins挑选下一个可用的从节点

    一旦从节点实例运行,它就通过TCP/IP连接主实例进行通信。

1.2Jenkins主/从策略

    Jenkins可用通过很多不同的方式设置不只构建,取决于操作系统和网络架构

    构建作业运行在从节点的方式及怎么被管理对于终端用户来说都是透明的:构建结果和构建产物最后总是会在主服务器上

2.Jekins工作原理:

这里是选择Gitlab作为git server。Gitlab的功能和Github差不多,但是是开源的,可以用来搭建私有git server,也提供非常强大的web GUI,比如开发者互相review源代码的时候就会很方便。

系统的工作流程大概分为以下几步:

       1> 开发者将新版本push到git server (Gitlab)。

       2> Gitlab随后触发jenkins master结点进行一次build。(通过web hook或者定时检测)

       3> jenkins master结点将这个build任务分配给若干个注册的slave结点中的一个,这个slave结点根据一个事先设置好的脚本进行build。这个脚本可以做的事情很多,比如编译,测试,生成测试报告等等。这些原本需要手动完成的任务都可以交给jenkins来做。

       4> 我们在build中要进行编译,这里使用了分布式编译器distcc来加快编译速度。

3.部署方式:

       3.1 jenkins触发式构建用于开发环境部署开发人员push代码或者合并代码到gitlab项目的master分支,jenkins就部署代码到对应服务器。

      3.2 jenkins参数化构建用于测试环境预上线环境部署,开发push代码或者合并代码到gitlab项目的master分支之后,并不会部署代码,而是需要登录到jenkins的web界面,点击构建按钮,传入对应的参数(比如参数需要构建的tag,需要部署的分支)然后才会部署。

      3.3 jenkins定时构建:用于APP自动打包,定时构建是在参数化构建的基础上添加的,开发人员可以登录jenkins手动传入tag进行打包,如果不手动打包,那么jenkins就每天凌晨从gitlab拉取最新的APP代码打包。

 

  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、linux 1,linux常用命令 2,某个时间段日志的查询 3,linux文件的上传和下载 二、功能测试 1,工作中所遇到的错误 2,测试流程: 3,测试计划元素: 4,测试报告元素: 5,测试点: 6,测试方法: 7,bug相关问题 8,adb常用命令 9,软件测试原则 10,测试用例编写的要素 11,测试用例的设计原则 12,软件产品质量特性 13,android四大组件 14,web测试和app测试的区别 15,app的anr的根本原因 16,app的crash的原因 17,h5页面图片未加载出来问题排查 18,区分原生和h5页面 19,为什么不能用jenkins打包 三、性能测试 1,了解jmeter 2,性能指标 3,如何做性能测试 四、接口测试 1,如何设计接口测试用例 2,为什么要做接口测试 3,接口测试的关注点 4,request处理cookie的三种方式 五、自动化测试 1,自动化核心框架 2,自动化测试的好处 3,自动化的前提 4,自动化测试的场景 5,元素定位的8种方式 6,如果一个元素无法定位,一般会考虑哪些原因 7,driver.close()和driver.quit()的区别 8,自动化脚本断言 9,判断页面元素是否存在 10,js在web自动化中的作用展示 11,自动化代码优化 12,selenium对比RF 13,自动化测试脚本三种等待 14,PO模式 六、HTTP协议 1,HTTP协议特点: 2,HTTP传输原理 3,get和post的区别 4,HTTP响应代码 5,osi七层模型 6,三次握手过程 7,session和cookie的区别 8,tcp和udp的区别 9,sockect通信原理 10,post的三种请求方式 七、数据库 1,sql分类 2,数据库事务特性:ACID 3,mysql索引的类型 4,池化思想 5,redis 6,如何提高数据库运行效率 八、java 1,面向对象的三个特征 2,重写和重载 3,比较sping,sping mvc 4,进程和线程的区别 5,java三层架构 6,处理异常 九、python 1,字符串反转的7种方法 2,new 和 _init_ 3,不使用中间变量交换两个变量的值 4,python四大内置高阶函数 5,python带颜色输出 6,python *args,**kargs用法 7,python常用模块 8,python多线程 9,python发送邮件 10,python操作图像 11,python的replace()方法的使用
### 回答1: Jenkins是一个开源的持续集成和持续交付工具,它提供了自动化构建、测试和部署软件的功能,能够帮助开发者快速、高效地交付软件。 Jenkins的实现原理主要包括以下几个方面: 1. 插件机制:Jenkins通过插件机制实现了各种不同的功能,例如版本控制、构建工具、测试框架等等,这些插件可以通过Jenkins的插件管理器安装和升级。 2. 构建任务:Jenkins通过构建任务实现了自动化构建、测试和部署软件的功能。用户可以在Jenkins中创建一个或多个构建任务,并指定构建任务的配置、构建脚本、构建触发器等等。 3. 构建节点:Jenkins可以使用本地计算机或远程计算机作为构建节点来执行构建任务。用户可以在Jenkins中配置构建节点,并将构建任务分配到不同的节点上执行。 4. 触发器:Jenkins可以通过不同的触发器来触发构建任务的执行,例如定时触发器、版本控制触发器、用户提交触发器等等。 5. 日志和报告:Jenkins会记录构建任务的执行日志,并生成构建报告,用于帮助用户了解构建过程的细节和结果。 总之,Jenkins的实现原理是基于插件机制、构建任务、构建节点、触发器、日志和报告等多个组件的集成和协作,使得Jenkins可以提供全面的持续集成和持续交付功能,帮助开发者快速、高效地构建和部署软件。 ### 回答2: Jenkins是一个开源的持续集成工具,它的实现原理主要包括以下几个方面。 1. 服务器架构:Jenkins是基于客户端/服务器架构实现的,主要由Jenkins服务器和Jenkins节点组成。Jenkins服务器负责整个应用的管理和控制,而Jenkins节点负责执行具体的构建任务。服务器和节点之间通过HTTP或SSH等协议进行通信。 2. Job和Build:Jenkins通过创建Job来定义构建任务的配置信息,包括源码地址、构建脚本、构建触发条件等。当满足触发条件时,Jenkins会创建一个Build实例,该实例包含了具体的构建过程和构建结果等信息。 3. 触发器和定时器:Jenkins支持多种触发器和定时器,例如源码变更触发、定时触发、手动触发等。通过这些触发器和定时器,Jenkins可以根据设定的条件自动触发构建任务,实现持续集成。 4. 插件系统:Jenkins提供了强大的插件系统,可以通过安装各种插件来扩展功能。插件可以用于集成其他工具和服务,例如版本控制系统、测试工具、部署工具等。用户可以根据需求选择并安装合适的插件来满足自己的需求。 5. 日志管理和报告:Jenkins会将构建过程中的输出信息存储为日志文件,用户可以通过Web界面查看和分析构建日志,从而了解构建过程的详细信息。同时,Jenkins还提供了丰富的报告和统计功能,用于展示构建结果、测试覆盖率、代码质量等信息。 总之,Jenkins通过服务器架构、Job和Build的管理、多种触发器和定时器、插件系统以及日志管理和报告等实现原理,实现了持续集成的自动化过程。用户可以通过配置和管理构建任务,将源码从版本控制系统中检出,经过编译、测试、部署等一系列过程,最终生成可用的软件包或部署到目标环境中。这样可以提高软件开发和部署的效率,减少错误和手动操作所带来的问题。 ### 回答3: Jenkins是一个开源的持续集成(CI)工具,旨在简化开发人员的持续集成流程。它的实现原理可以概括为以下几个关键步骤: 1. 代码版本控制:首先,开发人员将代码存储在版本控制系统(如Git)中。Jenkins与主流的版本控制系统具有良好的集成,可以轻松地从仓库中获取最新的代码。 2. 触发构建:Jenkins提供了多种触发构建的方式,包括定时、代码提交等。当触发条件满足时,Jenkins会自动开始构建过程。 3. 构建环境准备:Jenkins会在构建开始前准备构建环境。这包括在构建节点上分配资源、安装所需的软件和工具,以及设置环境变量等。 4. 构建过程:在构建过程中,Jenkins会执行指定的构建任务,这可能包括编译代码、运行测试、生成文档等。Jenkins提供了丰富的插件,可以支持各种任务类型的执行。 5. 构建结果处理:Jenkins会分析构建结果,并根据结果采取相应的行动。例如,如果构建成功,可以将构建产物归档,上传到指定的服务器;如果构建失败,可以发送通知邮件给开发人员。 6. 报告生成和展示:Jenkins可以生成构建报告和统计数据,以便开发人员和团队进行分析和决策。这些报告可以展示构建趋势、测试覆盖率、代码质量等信息。 7. 集成其他工具:Jenkins支持与其他工具的集成,如自动化部署工具、自动化测试工具等。这样可以形成一个完整的工具链,实现从代码提交到产品交付的全自动化流程。 总之,Jenkins的实现原理是通过与版本控制系统的集成,自动触发构建,并在构建环境中执行指定的构建任务。它提供了丰富的插件和功能,使开发人员能够轻松实现持续集成和持续交付。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值