Jekins理论

Jekins定义

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

1.Jenkins分布式构建架构

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

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

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

配置一个项目总是在特定的从节点运行
在某个特定类型的从节点运行
让Jenkins挑选下一个可用的从节点
一旦从节点实例运行,它就通过TCP/IP连接主实例进行通信。

2.Jenkins主/从策略

Jenkins可用通过很多不同的方式设置不只构建,取决于操作系统和网络架构。
构建作业运行在从节点的方式及怎么被管理对于终端用户来说都是透明的:构建结果和构建产物最后总是会在主服务器上。

Jekins工作原理

Jekins理论_第1张图片

选择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来加快编译速度。

部署方式

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

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

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

你可能感兴趣的:(Jekins)