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