学习交流

详解建构从机

2017-10-27 16:57:28 | 来源:中培企业IT培训网

为了减少构建队列,你可以增加构建从机。主服务器将会通过轮询或者绑定特定构建到特定从机的方式,将构建发送给从机。中培专家龚老师在这里进行了详细介绍。

这样做的原因一般是有些构建对托管的操作系统有一定的需求。

构建从机可以用来增加并行构建效率。它们也能用来在不同的操作系统上构建软件。

例如,你可以有一个Linux的Jenkins主服务器和使用Windows构建工具的Windows从机来构建组件。为Apple Mac构建软件,最好用一个Mac作为构建从机,尤其是Apple对于在虚拟服务器上部署操作系统有很古怪的规则。

本质上,Jenkins主机给从机发送命令,必须有一种途径。这种途径可以是经典的SSH方法,并且Jenkins提供内建的SSH功能。你也可以通过从机从主机上下载一个Java JNLP客户端的方式来启动Jenkins从机。如果构建从机不提供SSH服务,这种做法就很实用。

【跨平台编译的注意事项

尽管可以使用Windows构建从机,有些时候用Linux来构建Windows软件要来得更容易些。诸如GCC那样的C编译器可以通过配置使用MinGW包来进行跨平台编译。

是否这样做更容易取决于要构建的软件。一个大系统通常由许多不同的部分组成,一些部分可能包含了不同平台的本地代码。

这儿有几个例子:

本地的android组件。

本地为了性能而用C语言编写的服务器组件。

本地为了性能而用C或C++语言编写的客户端组件。

本地代码的多少有些取决于你所在的企业的性质。电信产品一般有许多的本地代码,例如视频编解码器和硬件接口代码。银行系统可

能有用本地代码编写的高速消息系统。这样做的一方面是件很重要的事:能够在构建服务器上便捷地构建

所有使用中的代码。否则,就会有一种不良倾向,那就是某些代码只能在几台吃灰的机器上构建。这是我们需要避免的风险。

企业里的系统需要的究竟是什么,只有你自己才知道。

主机上的软件

视构建的复杂性而定,你可能需要在构建服务器上安装许多不同类型的构建工具。记住Jenkins主要是用来触发构建的,它们并不自己构建。这个任务被委托给了例如Maven或Make这样的构建系统。

以我的经验来看,有一个基于Linux操作系统的主机是最方便的。大多数构建系统都可以在发行版库里找到,直接从那里安装是非常简便的。

部署服务器上的应用服务器会持续更新,为了让构建服务器也总是最新,你可以直接使用同一台部署服务器来做构建。

触发器

你可以设置一个定时器来触发构建,或者轮询代码库直到发生变更时才构建。

可以同时使用这两种方法:

最常用的是轮询Git库,这样每次提交都会触发构建。可以触发比持续构建更久也更加彻底的每夜构建。由于这些构建发生在假定无人工作的夜晚,慢一点也关系不大。 一个上游的构建可以触发一个下游的构建,你还能让一个任务里的成功构建触发另一个任务。

任务链和构建流水线

能把任务串起来通常都是非常有用的。最简单的方式是:当第一个任务成功完成时,会通过事件触发第二个任务。几个任务可以用这种方式在链中传递。这样的一个构建链一般足以胜任大多数工作。有时构建步骤的可视化和细粒度控制任务链都是我们想要的。

在Jenkins术语里,链上的第一个构建被称为上游构建,第二个被称为下游构建。

虽然这种链式构建的方式一般够用,但还是有可能需要更好地控制构建链。这样的构建链通常被称为流水线或工作流。

有许多为Jenkins创建更好流水线的插件,它们的数量表明了确实有改进这方面的大量需求。

多任务插件和工作流插件是其中的两个例子。

工作流插件更加先进,它有一个优势是可以用Groovy DSL来描述而不是在web界面上改来改去。

工作流插件是CloudBees主推的,它现在是Jenkins最主要的贡献者。

想了解更多IT资讯,请访问中培伟业官网:中培伟业