一. Master 和slave.
下图阐述了master-slave交互的架构:
在上面这个分布式的构建环境中,Jenkins master主要负责如下:
- 接收构建触发(比如,一个提交到GitHub后)
- 发送通知(比如,在构建失败后,发送email或者HipChat消息)
- 处理HTTP请求(和客户端进行交互)
- 管理构建环境(在slave编排工作执行)
由于master和slave负责不相同的,所以他们请求不同的环境。
Master: 往往是专用的主机,项目从小到大需要内存200 MB--- 70 GB.
Slave: 没有特别的要求,它应该能够执行单一的构建。比如:这个项目比较大的话,请求100GB的内存,那么该slave主机应该满足项目的要求。
建议: agent应该尽可能的通用,比如,假如我们有不同的项目 ,java、python、ruby。那么每个agent都能够构建他们中的项目 ,有助于资源的调优使用。