Jenkins高可用方案匯總

前言

現(xiàn)在的企業(yè)很多都在用Jenkins做持續(xù)集成,各個(gè)業(yè)務(wù)端都依靠Jenkins,部署Jenkins服務(wù)時(shí)如何保障服務(wù)的高可用變得尤為重要。以下是最近收集的一些方案。

Gearman + Jenkins

這是openstack團(tuán)隊(duì)使用的方案,Jenkins本身是單體的,即只能有一個(gè)Jenkins Master。雖然你也可以在多臺機(jī)器上部署多個(gè)Jenkins Master,但這些Master之間沒有聯(lián)系,都是各自把任務(wù)交給手下的slaver去執(zhí)行,沒有任何交集。也許某個(gè)master下的slaver很忙,而另一個(gè)master下的slaver卻很閑,資源得不到充分利用。這個(gè)方案使用了gearman, gearman是個(gè)任務(wù)分發(fā)框架。

需要在每個(gè)Master上安裝好gearman的插件,并配置好能連接到gearman server,同時(shí)在每個(gè)Master必須建立相同的job。之后運(yùn)行任務(wù)的流程如下:

1、gearman worker運(yùn)行在各個(gè)Jenkins Master中等待gearman server分發(fā)任務(wù);

2、gearman client向gearman server發(fā)出運(yùn)行job的請求;

3、gearman server通知各個(gè)gearman worker有任務(wù)拉,第一個(gè)閑著的worker會接受任務(wù),如果所有的worker都忙,則放入gearman的任務(wù)隊(duì)列,得worker空閑時(shí)再分配;

4、gearman worker閑下來后會從任務(wù)隊(duì)列里取job來執(zhí)行,執(zhí)行完之后,將結(jié)果發(fā)回給gearman server;

5、gearman server將結(jié)果返回給 gearman client。

這樣各個(gè)salver資源可以得到充分利用,某個(gè)master掛掉另外的master可以繼續(xù)服務(wù)。

詳細(xì)信息可參考gearman插件說明

Jenkins + Apache Mesos + Marathon

Apache Mesos是一個(gè)開源的資源管理和調(diào)度平臺。大概的架構(gòu)就是一個(gè)Mesos Master下面掛著多個(gè)mesos slaver資源。 Marathon是一個(gè)mesos框架。

Marathon將Jenkins master部署在mesos資源池中。將Jenkins注冊為mesos的framework,則在jenkins構(gòu)建時(shí),會向mesos申請資源,申請資源成功,則執(zhí)行構(gòu)建,執(zhí)行任務(wù)結(jié)束則將資源釋放。

如果Marathon監(jiān)測到Jenkins應(yīng)用掛了,會馬上使用Mesos資源重新啟動Jenkins。所以Jenkins可能被部署在mesos資源的各個(gè)slaver機(jī)器。

那怎么保證數(shù)據(jù)一致呢?這個(gè)可以使用Jenkins插件SCM Sync configuration plugin。安裝此插件后,Jenkins的各種配置有更改時(shí),都會將修改提交到相應(yīng)的Git庫。保證所有的配置信息不會丟失,當(dāng)Jenkins重新在別的機(jī)器上啟動后, 從git上將配置下載下來,這樣就保證數(shù)據(jù)一致了。

詳細(xì)信息可參看如何搭建彈性高可用的持續(xù)集成環(huán)境

改造Jenkins的文件存儲方式

目前Jenkins的配置文件都是直接在硬盤上以文件形式存儲的,你在JENKINS_HOME的個(gè)文件夾下能看到各種.xml文件。有些公司在Jenkins上進(jìn)行二次開發(fā),將Jenkins的數(shù)據(jù)存儲方式改為數(shù)據(jù)庫存儲,這樣前端可以起多個(gè)Jenkins服務(wù),后端連相同的數(shù)據(jù)庫即可。數(shù)據(jù)庫也有比較成熟的高可用方案。

最簡單的Jenkins一主一備模式

平時(shí)讓Jenkins A機(jī)器提供服務(wù),并使用SCM Sync configuration plugin保存數(shù)據(jù),JenkinsA機(jī)器修改配置后觸發(fā)Jenins B更新配置,一旦Jenkins A出現(xiàn)問題掛掉后,切換到備機(jī)Jenkins B上。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 概述 持續(xù)集成的速度是衡量一個(gè)團(tuán)隊(duì)敏捷水平的核心指標(biāo)之一,CI也需要持續(xù)升級。 CI1.0 單機(jī),集中式,只有一臺...
    真徐小白閱讀 3,580評論 1 19
  • 摘要 為了滿足渲染、基因測序等計(jì)算密集型服務(wù)的需求,UCloud 已推出了“計(jì)算工廠”產(chǎn)品,讓用戶可以快速創(chuàng)建大量...
    UCloud云計(jì)算閱讀 824評論 0 1
  • 最近烏魯木齊的天空藍(lán)的不像話,簡直太美了!走在路上,抬頭發(fā)現(xiàn)換一個(gè)角度看天空顯現(xiàn)了不同的美! 利用相機(jī)和大樓的線條...
    荷語微光閱讀 217評論 2 0
  • 題記:新春佳節(jié)近了 年味越發(fā)濃 午后閑暇總想的 那兒女情長 過去的時(shí)光 伴著幾分甜蜜 又有幾分優(yōu)傷 無人能體量 偶...
    柴山木棉閱讀 253評論 0 2

友情鏈接更多精彩內(nèi)容