一. 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都能夠構建他們中的項目 ,有助于資源的調優使用。