GoCD持續(xù)集成及部署利器
GoCD 一款先進(jìn)的持續(xù)集成和發(fā)布管理系統(tǒng),由ThoughtWorks開發(fā)。(不要和Google的編程語(yǔ)言Go混淆了?。┢淝吧頌?a >CruiseControl,是ThoughtWorks在做咨詢和交付交付項(xiàng)目時(shí)自己開發(fā)的一款開源的持續(xù)集成工具。后來(lái)隨著持續(xù)集成及持續(xù)部署的火熱,ThoughtWorks專門成立了一個(gè)項(xiàng)目組,基于Cruise開發(fā)除了Go這款工具。ThoughtWorks開源持續(xù)交付工具Go。使用Go來(lái)建立起一個(gè)項(xiàng)目的持續(xù)部署pipeline是非??斓?,非常方便。
GoCD 的強(qiáng)大:
-
使用PipeLineGroup,PipeLine,Stage,Job,Task 分級(jí)分層控制任務(wù)粒度和關(guān)聯(lián)性
-
強(qiáng)大的用戶,角色系統(tǒng)
-
go-server <--> go-agent 通信和管理模式
-
除了JRE 1.6+ 以外不依賴其它組件,對(duì)系統(tǒng)的沖擊很小,方便部署
不足:
-
不支持一個(gè)PipeLine、Job在多個(gè)Agent上依次執(zhí)行(對(duì)于大規(guī)模集群式部署的應(yīng)用來(lái)說(shuō),這簡(jiǎn)直要命)
-
插件比較稀少
-
開源時(shí)間短,用戶群還比較小
Go的架構(gòu)設(shè)計(jì)
Go使用了Server-Agent的模式。Server用來(lái)展示和配置pipeline的DashBoard,并存放構(gòu)建出來(lái)的Artifacts(存檔文件,比如一個(gè)war包); Agent則用來(lái)執(zhí)行真正的構(gòu)建操作,一個(gè)Server可以和多個(gè)Agent建立連接,Agent支持多個(gè)主流的操作系統(tǒng)。
