丨構(gòu)建資源彈性伸縮_第1頁(yè)
丨構(gòu)建資源彈性伸縮_第2頁(yè)
丨構(gòu)建資源彈性伸縮_第3頁(yè)
丨構(gòu)建資源彈性伸縮_第4頁(yè)
丨構(gòu)建資源彈性伸縮_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

TravisCI是基于的CI托管解決方案之一,由于和的緊密集成,在開源項(xiàng)TravisCItravis.ymltravis.yml另外,TravisCI可以支持市面上絕大多數(shù)的編程語(yǔ)言。但是,因?yàn)門ravis只支持,能登錄到對(duì)托管在上的項(xiàng)目有管理員權(quán)限CircleCICircleCI持和Bitbucket管理。CircleCI與其他持續(xù)集成工具的區(qū)別在于,它們提供服務(wù)的方式不同。CircleCI需要的費(fèi)。你也可以選擇你所需要的并行化級(jí)別來(lái)加速你的持續(xù)集成,它有5個(gè)并行化級(jí)別(1x、4x、8x,、12x16x)可供選擇,分別代表利用幾個(gè)容器同時(shí)進(jìn)行一個(gè)項(xiàng)目的構(gòu)第三,JenkinsJenkins是一款自包含、開源的用于自動(dòng)化驅(qū)動(dòng)編譯、測(cè)試、交付或部署等一系列任務(wù)的自動(dòng)化服務(wù),它的是JenkinsPipline。JenkinsPipline可以實(shí)現(xiàn)對(duì)持續(xù)交付插件的靈活組合,以流水線的方式接入到Jenkins服務(wù)。Jenkins還提供了一整套可擴(kuò)展的工具集,程序員可以通過(guò)代碼的方式,定義任何流水線的行為。另外,經(jīng)過(guò)多年的發(fā)展,Jenkins已經(jīng)包含了很多實(shí)用的第插件,覆蓋了持續(xù)交目前,絕大多數(shù)組織都選擇了Jenkins作為內(nèi)部的持續(xù)集成工具,主要原因是:代碼開源,插件完善,系統(tǒng)穩(wěn)定;JenkinsPipelineJenkinsMasterSlaveJenkinsMaster目前普遍的Jenkins搭建方案是:一個(gè)JenkinsMaster搭配多個(gè)JenkinsSlave。大多數(shù)情況下,這種方案可以很好地工作,并且隨著構(gòu)建任務(wù)的增加,無(wú)腦擴(kuò)容JenkinsSlave也不是一件難事。另外,不管是LinuxSlave還是WindowsSlave,Jenkins都可以很好地多,越來(lái)越頻繁,單個(gè)JenkinsMaster終究會(huì)成為系統(tǒng)中的瓶頸。圖1攜程JenkinsMaster攜程的解決思路是在Jenkins上面再封裝兩層:BuildService構(gòu)建的HTTP接口,接收請(qǐng)求后將任務(wù)丟給異步隊(duì)列BuildWorker,BuildWorker符合條件的JenkinsMaster。這里的分發(fā)條件,可以是編譯任務(wù)的平臺(tái)或語(yǔ)言,比如可以將基于Windows和Linux的任務(wù)分別放在不同的JenkinsMaster上,也可以將Java構(gòu)建和NodeJS構(gòu)建任務(wù)放在不同的JenkinsMaster上??偠灾?,構(gòu)建任務(wù)分發(fā)的策略可以是非常靈活的:構(gòu)建Worker和JenkinsMaster之間有“心跳監(jiān)測(cè)”,可以時(shí)刻檢查JenkinsMaster是否還健康,如果有問(wèn)題就將任務(wù)分發(fā)到JenkinsMaster這種拆解JenkinsMaster主要有以下幾個(gè)好處:每個(gè)JobJenkinsMasterJob做ShardingMasterMasterJenkinsSlave解決了JenkinsMaster的高可用問(wèn)題,接著就要去思考如何才能解決Slave資源管理和利明顯,而且隨著組織擴(kuò)大,幅度也有所擴(kuò)大。所以,如果按照的要求來(lái)配備Slave實(shí)因此,我們需要整個(gè)Slave集群具有更優(yōu)的彈性:既要好管理,又要好擴(kuò)展。在攜程,我們嘗試過(guò)多種虛擬機(jī)方案,比如全Windows類型、金映象方案等等。最后,根據(jù)容器的特性,選擇了容器作為解決方案。期間也經(jīng)歷了Mesos到K8s的兩套方案。SlaveWindows我們把所需的構(gòu)建軟件像大雜燴一樣一股腦地安裝在虛擬機(jī)上,比如,編譯.NET所需的MSBuild,編譯Java所需的Maven。我們著一份啰嗦冗長(zhǎng)的安裝手冊(cè),并翼翼后來(lái),我們嘗試了將虛擬機(jī)成鏡像,并使用SaltStack做自動(dòng)化變更。雖然日子好過(guò)了這讓我們非常困擾,我們做的是DevOps與持續(xù)交付,但是自己的工具管理卻如此無(wú)DockerfileGit合做到版本化控制,先更新Dockerfile再更新鏡像是很自然的事。Base你的所有構(gòu)建都需要安裝Git等軟件,那么就可以把它寫到Base鏡像里面。Docker比JavaNodeJS,Golang,Erlang,Python在嘗到了Linux容器帶來(lái)的甜頭之后,我們毅然決然地開始研究Windows容器技術(shù)。經(jīng)Docker此外,我們之前使用容器的方式幾乎和使用虛擬機(jī)一樣,也就是所謂的“胖容器”,一旦創(chuàng)建,不管用不用,它都在那里。而構(gòu)建是一個(gè)周期性的行為,一般跟著程序員的工作時(shí)間走:工作日比周末多,白天比晚上多,甚至還有明顯的午飯和晚飯空閑期。后來(lái)Mesos與Kubernetes等主流的容器集群管理工具漸漸浮出水面,出現(xiàn)在我們的視野基于Borg成熟經(jīng)驗(yàn)打造的Kubernetes,為容器編排管理提供了完整的開源方案,并且社區(qū)活躍,生態(tài)完善,積累了大量分布式、服務(wù)化系統(tǒng)架構(gòu)的最佳實(shí)踐。在2017年,攜程嘗試將Jenkins和Kubernetes集成在了一起。圖2上圖就是我們某臺(tái)宿主機(jī)24小時(shí)的構(gòu)建數(shù)量與所創(chuàng)建容器的對(duì)比圖,可以看出兩條曲線呈現(xiàn)的趨勢(shì)基本是一致的。我們?cè)谝雇黹e置的資源上,調(diào)度了一些其他的離線Job,大幅提升所以,攜程利用容器技術(shù),也順利實(shí)現(xiàn)了Slave節(jié)點(diǎn)的彈性伸縮。對(duì)于中小型企業(yè),初期完全可以利用Jenkins及其Kubernetes插件,做到Slave節(jié)點(diǎn)的資源彈性伸縮。至于與離線Job混部,因?yàn)橐紤]的因素較多,可以在應(yīng)用容器化之后再考慮。Jenkins通常建議使用成CI產(chǎn)品(比如,TravisCI、CircleCI、JenkinsCI)來(lái)作為平臺(tái)的CI自通過(guò)請(qǐng)求分發(fā)等設(shè)計(jì),可以實(shí)現(xiàn)Master利用容器技術(shù),可以解決SalveJenkinsKubernetes 不得售賣。頁(yè)面已增加防盜追蹤,將依法其上一 15|構(gòu)建檢測(cè),無(wú)規(guī)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論