一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>集成開(kāi)發(fā)環(huán)境源碼>

在Jenkins管理的持續(xù)集成境引入Docker來(lái)優(yōu)化資源配置

大?。?/span>0.3 MB 人氣: 2017-09-26 需要積分:1

  Jenkins是被廣泛應(yīng)用的持續(xù)集成、自動(dòng)化測(cè)試、持續(xù)部署的框架,甚至有些項(xiàng)目組順便將其用來(lái)做流程管理的工具。根據(jù)任務(wù)的多寡,Jenkins通常有兩種典型的部署方式。

  單節(jié)點(diǎn)(Master)部署

  這種部署適用于大多數(shù)項(xiàng)目,其構(gòu)建任務(wù)較輕,數(shù)量較少,單個(gè)節(jié)點(diǎn)就足以滿足日常開(kāi)發(fā)所需。

  多節(jié)點(diǎn)(Master-Slave)部署

  通常規(guī)模較大,代碼提交頻繁(意味著構(gòu)建頻繁),自動(dòng)化測(cè)試壓力較大的項(xiàng)目都會(huì)采取這種部署結(jié)構(gòu)。在這種部署結(jié)構(gòu)下,Master通常只充當(dāng)管理者的角色,負(fù)責(zé)任務(wù)的調(diào)度,slave節(jié)點(diǎn)的管理,任務(wù)狀態(tài)的收集等工作,而具體的構(gòu)建任務(wù)則會(huì)分配給slave節(jié)點(diǎn)。一個(gè)Master節(jié)點(diǎn)理論上可以管理的slave節(jié)點(diǎn)數(shù)是沒(méi)有上限的,但通常隨著數(shù)量的增加,其性能以及穩(wěn)定性就會(huì)有不同程度的下降,具體的影響則因Master硬件性能的高低而不同。

  關(guān)于Docker

  Docker是一款針對(duì)程序開(kāi)發(fā)人員和系統(tǒng)管理員來(lái)開(kāi)發(fā)、部署、運(yùn)行應(yīng)用的一款虛擬化平臺(tái)。Docker 可以讓你像使用集裝箱一樣快速的組合成應(yīng)用,并且可以像運(yùn)輸標(biāo)準(zhǔn)集裝箱一樣,盡可能的屏蔽代碼層面的差異。Docker 會(huì)盡可能的縮短從代碼測(cè)試到產(chǎn)品部署的時(shí)間。簡(jiǎn)單來(lái)說(shuō)Docker提供了一種技術(shù),可以讓開(kāi)發(fā)人員方便地將應(yīng)用代碼已經(jīng)運(yùn)行時(shí)的環(huán)境一并打包到一個(gè)鏡像中,然后將這個(gè)鏡像上傳至鏡像倉(cāng)庫(kù)。在測(cè)試或者產(chǎn)品環(huán)境只需要下載這個(gè)鏡像然后將其啟動(dòng)就完成了部署(就好比打開(kāi)一個(gè)集裝箱那么簡(jiǎn)單)。關(guān)于Docker更詳細(xì)的內(nèi)容請(qǐng)參考官網(wǎng)文檔。

  當(dāng)前Jenkins遇到的困難

  隨著敏捷開(kāi)發(fā)的普及,自動(dòng)化測(cè)試成為每個(gè)項(xiàng)目的必須。一個(gè)經(jīng)過(guò)多年開(kāi)發(fā)的項(xiàng)目,其累積的自動(dòng)化測(cè)試數(shù)量是驚人的。為了保證每次的部署都是正確的,就需要每次回歸所有的自動(dòng)化測(cè)試用例。根據(jù)項(xiàng)目的不同,有些需要每周跑一輪回歸測(cè)試,而有些項(xiàng)目則需要每天一輪。所以我們會(huì)把所有的測(cè)試用例進(jìn)行分組,同時(shí)在多臺(tái)測(cè)試機(jī)上運(yùn)行,以減少一輪測(cè)試所需要的時(shí)間。而這就要求我們有足夠多的硬件資源來(lái)滿足這需求。下圖展示了一個(gè)典型的通過(guò)Jenkins來(lái)管理自動(dòng)化測(cè)試的拓補(bǔ)結(jié)構(gòu)。一臺(tái)Master主機(jī)管理多臺(tái)測(cè)試機(jī),Master將測(cè)試任務(wù)分配給測(cè)試機(jī)。

  在Jenkins管理的持續(xù)集成境引入Docker來(lái)優(yōu)化資源配置

  當(dāng)前Jenkins(Master-Slave)結(jié)構(gòu)當(dāng)前Jenkins(Master-Slave)結(jié)構(gòu)

  這種結(jié)構(gòu)存在一些缺陷:

  自動(dòng)化的測(cè)試通常都是通過(guò)捕捉屏幕控件來(lái)模擬用戶的行為以達(dá)到測(cè)試的目的,這就意味著一臺(tái)測(cè)試機(jī)上只能同時(shí)運(yùn)行一組測(cè)試用例,否則用例之間就會(huì)相互干擾。這就存在資源浪費(fèi),因?yàn)闇y(cè)試機(jī)的配置往往可以支持多組測(cè)試用例。

  維護(hù)人員得確保測(cè)試機(jī)都保持在線,當(dāng)測(cè)試機(jī)器數(shù)量較多的時(shí)候,比如100臺(tái)甚至1000臺(tái)的時(shí)候,這維護(hù)的壓力就比較大。

  通常回歸測(cè)試是在晚上運(yùn)行(如此就能在開(kāi)發(fā)組第二天上班時(shí)發(fā)現(xiàn)前一天提交的代碼是否正確),但這上百臺(tái)測(cè)試機(jī)不論白天晚上都在工作狀態(tài),這是另一維度的浪費(fèi)。

  很重要的一點(diǎn),測(cè)試機(jī)器會(huì)因?yàn)楦鞣N原因?qū)е聹y(cè)試環(huán)境被污染,導(dǎo)致測(cè)試不能順利進(jìn)行,而此時(shí)除了維護(hù)人員手工處理外,沒(méi)有特別好的方案。

  之前我們提到過(guò),當(dāng)slave數(shù)量達(dá)到一定程度的時(shí)候,作為Master的節(jié)點(diǎn)就會(huì)出現(xiàn)性能變差,穩(wěn)定性下降。

  每個(gè)Slave節(jié)點(diǎn)在開(kāi)始跑測(cè)試之前都需要從中央庫(kù)下載最新的分發(fā)包,解壓,設(shè)定運(yùn)行環(huán)境。這個(gè)過(guò)程通常也占用不少時(shí)間,想象一下,突然間上百個(gè)slave開(kāi)始下載最新的庫(kù),這對(duì)中央庫(kù)是一個(gè)極大的沖擊。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?