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