如前所述,Jenkins架构如下图所示:
这是一个单一的Jenkins服务器,在某些情况下不能满足要求,例如:
- 有时可能需要不同的环境,来测试构建。这不能由一个Jenkins服务器完成。
- 对于更大、更重的项目的构建,一个Jenkins服务器不能处理整个负载。
为了满足上述需求,Jenkins引入了分布式架构。
分布式架构
Jenkins使用主从架构来管理分布式构建。在这种体系架构中,主机和从机通过TCP/IP协议进行通信。
Jenkins 主机
Jenkins 主机的工作是:
- 调度构建工作。
- 将构建分派给从服务器进行实际构建。
- 监视从机。
- 记录并显示构建结果。
- Jenkins的主机也可以直接执行构建。
Jenkins 从机
Jenkins 从机是在远程机器上运行的Java可执行文件。Jenkins 从机的特性:
- 侦听来自Jenkins 主机的请求。
- Jenkins 从机可以运行在各种操作系统上。
- Jenkins 从机的工作是执行命令,这包括执行由主机分派的构建任务。
- 可以为项目配置执行构建的从机。
下图是一个主机和三个从机:
示例:不同环境下的构建
需要构建不同系统环境下的版本,并进行测试。如下图所示:
上图中,Jenkins执行以下工作:
- Jenkins定期检查Git代码库中的新提交。
- 每个构建都需要不同的测试环境,这对于单个Jenkins服务器来说是不可能的。为了在不同的环境中测试,Jenkins使用了不同的从机环境,如图中所示。
- Jenkins 主机请求这些从机执行测试并生成测试报告。