让你的jenkins能当奴隶主---说说几种Jenkins build框架

近期又有几个朋友看了俺的文章询问。怎样让Jenkins能做到分布式。我解释了非常久,发现这也是个非常好的topic,就来博客继续念叨念叨。

这个非常easy,所以这篇文章也就介绍简单点。

首先说下Jenkins能支持的几种build框架:

1.我构建,我收集的Master only框架。

Master only 框架主要就靠Jenkins本身运作在Server上(数据库在server上或不在都属于该框架),利用Server本身的硬件资源进行build(编译,做包。測试等)。

它能做到的事情:

a:可以让job执行在Master上。

b:可以让job写数据到database。

c:可以让job更新/计划数据并展示。

2.你构建,我收集的Master-单slave框架。

该框架是用于解决单一server又执行Jenkins又编译,影响Jenkins的正常运作的情况。该框架让Jenkins的Agent常驻在另外一台服务器,让它变成Jenkins的slave。由slave来执行job.Master就用来收集数据,传递数据。展示数据。

3.你们构建。我收集的Master-多slave框架。

改框架主要攻克了单台slave同一时候编译多branch的软件的时候的效率低下问题。由N个Jenkins Agent常驻于N个server,由Master统一调度job执行在不同的Slave上。从而达到不同的branch编译不会相互影响的情况,加速编译、做包速度。

而Master 仅仅用于收集数据、展示数据。

4.你们构建,我们各收集各的多Master-多slave框架。

该框架用于解决因为Jenkins 的负载太重导致的Jenkins性能问题,由多个Jenkins作为不同的Master,指派Job到不同的Slave上build.各个master负责的Job领域、类型不同。比方Master 1是SCM做包的,Master2专门管编译,Master 3用于自己主动化測试。而Master们还是用于收集数据,展示信息。

这个框架便是下一步的Cloud build的基础。

5.Cloud Build

该框架是一个动态的框架。处于1-4的框架中的一种。所以这里就没有配图了。

当任务不多的时候。可能为1-2.

当任务非常多的时候,可能为3.

当任务巨大的时候,可能为4.

由于有了Cloud。server资源能够任意调配。那么能够在Cloud上申请几个instance做为Master,同一时候申请几千个CPU的slave做编译。编译完释放instance的所用资源。

而Master还是仅仅做数据收集、展示数据。

当这个Master完毕任务的时候,该instance也能够释放所用资源。

Cloud build框架用于节约HW的资源。一个Cloud服务的公司能够提供非常多其它公司来用它的服务,从而降低了总的HW数量。而几千个cpu的编译速度,不是一般server能比的。

说了这么多,看官您云(晕)了没?

时间: 2024-10-25 08:34:48

让你的jenkins能当奴隶主---说说几种Jenkins build框架的相关文章

jenkins官方文档学习笔记 初识Jenkins

什么是jenkins? Jenkins是一个用来监控重复工作的受到嘉奖的应用,比如构建一个软件项目或者定时执行的任务. 在这些工作中,Jenkins主要专注与以下两项工作: 1,持续构建/测试软件项目,Jenkens提供简单易用的所谓的持续集成系统,让开发者把变动集成到项目中变的更简单,让用户获得一个新的构建.自动持续的集成提高了生产效率. 2,监控外部调用执行的工作,比如cron jobs和procmail jobs,即使这些功能运行在远程机器上.例如,定时任务中,你会定期的收到捕获输出的邮件

Jenkins 2 如何使用 PowerShell 以及自定 build fail (指定 exit code)

Jenkins 除了用來做為 CI(持續性整合) 工具外,也可以與其他 plugin 配合達成其他目的(e.g.IIS restart.檔案壓縮備份-),今天就來看看可以怎麼與 PowerShell 整合執行 PowerShell 指令 文章大綱 安裝 PowerShell plugin 設定 Powershell plugin PowerShell 丟出 build fail 1. 安裝 PowerShell plugin Manage Jenkins –> Manage Plugins Av

Jenkins入门系列之——02第二章 Jenkins安装与配置

2014-12-08:已不再担任SCM和CI的职位,Jenkins的文章如无必要不会再维护. 写的我想吐血,累死了. 网页看着不爽的,自己去下载PDF.有问题请留言! Jenkins入门系列之--03PDF文档下载 第二章 Jenkins安装与配置 2 Jenkins安装 在最简单的情况下,Jenkins 只需要两个步骤: 1.下载最新的版本(一个 WAR 文件).Jenkins官方网址: http://Jenkins-ci.org/ 2.运行 java -jar jenkins.war 注意:

Jenkins入门系列之——01第一章 Jenkins是什么?

第一章 Jenkins是什么? Jenkins 是一个可扩展的持续集成引擎. 主要用于: l 持续.自动地构建/测试软件项目. l 监控一些定时执行的任务. Jenkins拥有的特性包括: l 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持. l 易于配置-所有配置都是通过其提供的web界面实现. l 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知. l 生成JUnit/TestNG测试报告. l 分布式构建支持Jenkins能

Jenkins 四: 启动关闭以及重启jenkins

启动 1. 在桌面新建一个jenkins.bat文件.内容如下: cd /d %JENKINS_HOME% java -jar %JENKINS_HOME%\jenkins.war --httpPort=8080 2. 双击jenkins.bat就可以启动Jenkins了. 3. 看到"信息: Jenkins is fully up and running",说明启动成功. 备注: 由于在环境变量里面设置了 JENKINS_HOME的值为jenkins的路径,所以这里就不用进行设置了.

Jenkins常见REST API(便于将Jenkins集成到其他系统)

1.运行job a.无参任务 curl -XPOST http://IP:8080/jenkins/job/plugin%20demo/build --user admin:admin b.含参任务 b-1.不设置参数/使用默认参数 curl -XPOST http://IP:8080/jenkins/job/commandTest/buildWithParameters --user admin:admin b-2.设置参数方法1 curl -XPOST http://IP:8080/jenk

Jenkins触发远程Job的几种方式

本文叙述基于以下假设前提,将介绍三种在不同的jenkins服务器之间触发Job的方法: 本地Jenkins Server local.jenkins.com远程Jenkins Server remote.jenkins.com本地Jenkins Job名 local_job远程Jenkins Job名 remote_job 需求 在local_job完成后自动触发remote_job一.在remote_job上配置Build Trigger:步骤:1.在Jenkins Web GUI上配置rem

Jenkins (一) 在windows系统上安装Jenkins

前置条件:            1.安装jdk1.8或以上版本            2.下载Jenkins安装包   https://jenkins.io/download/      这里我用的是msi安装的                             第一步:双击下载好的安装包,一直next              安装完成后浏览器会出现如下网页:耐心等待               第二步:在密码输入框输入密码 第三步:安装插件 ,选择左侧的              需

Jenkins+Ansible+Gitlab自动化部署三剑客(五)--Jenkins 参数集成

Jenkins 参数集成 1.新建项目 2.添加选项 #!/bin/sh echo "Current deploy environment is $deploy_env" echo "The build is $version" echo "The paasword is $pass" if $bool then echo "Request is approved" else echo "Request is rej