使用構(gòu)建服務(wù)器最主要的好處是實(shí)現(xiàn)持續(xù)集成,中培專家劉老師指出,每當(dāng)檢測(cè)到代碼庫(kù)的變更,一次測(cè)試新提交的代碼的構(gòu)建就開(kāi)始了。
由于可能有許多開(kāi)發(fā)者在代碼庫(kù)工作,每個(gè)人使用的版本都略有區(qū)別,所以知道所有不同的變更能否一起正確工作就顯得非常重要。這被稱為集成測(cè)試。如果集成測(cè)試還遙遙無(wú)期,就存在一個(gè)不同代碼分支各自演進(jìn),合并變得不再容易的問(wèn)題。這個(gè)結(jié)果通常被稱為“合并地獄”。因?yàn)楦鱾€(gè)分支大不相同,如何把開(kāi)發(fā)者的本地變更合并到主干上也變得不再清晰。這種情形不是我們想要的。合并地獄的根源經(jīng)??赡芰钊舜蟪砸惑@:就是心理問(wèn)題。為了把你的變更合并到主線,有一個(gè)心理障礙需要克服。DevOps工作的一部分就是簡(jiǎn)化事情,降低像提交變更這種重要工作的感知成本。
持續(xù)集成上的構(gòu)建通常比開(kāi)發(fā)者的本地構(gòu)建更加嚴(yán)格。這些構(gòu)建需要很長(zhǎng)的時(shí)間來(lái)運(yùn)行,但是如今的高性能硬件已不再昂貴,我們的構(gòu)建服務(wù)器足以應(yīng)付。
如果構(gòu)建快到不至于讓人感到無(wú)聊,開(kāi)發(fā)者將會(huì)對(duì)頻繁提交充滿熱情,集成問(wèn)題將會(huì)更早出現(xiàn)。
持續(xù)交付
在持續(xù)集成這一步勝利完成之后,你擁有的嶄新工件就可以部署到服務(wù)器上了。一般來(lái)說(shuō),有一些測(cè)試環(huán)境會(huì)設(shè)置得像產(chǎn)品服務(wù)器那樣。
一般來(lái)說(shuō)構(gòu)建服務(wù)器所做的最后一步,是從成功的構(gòu)建里把最終工件部署到工件庫(kù)里。在那里,部署服務(wù)器接管了部署到應(yīng)用服務(wù)器的責(zé)任。在Java世界里,Nexus庫(kù)管理器相當(dāng)常見(jiàn)。它支持的格式不僅僅是Java,還有例如JavaScript工件和Yum體系的RPM。Nexus現(xiàn)在也支持Docker Registry的API了。
為RPM發(fā)行版使用Nexus只是可選方案之一。你可以用shell腳本很輕松地構(gòu)建Yum體系。
想了解更多IT資訊,請(qǐng)?jiān)L問(wèn)中培偉業(yè)官網(wǎng):中培偉業(yè)