構(gòu)建服務(wù)器可以隨心所欲地傳遞出錯誤和代碼質(zhì)量問題的信號,如果開發(fā)團隊不關(guān)心這些問題,那么這些通知和可視化的投資收益為零。
對此,中培技術(shù)專家袁老師認(rèn)為,這并不是技術(shù)本身可以解決的。流程需要每個人都同意,讓人人都能看見自己參與所帶來的利益是達(dá)成共識的最簡方法。
問題是企業(yè)里總是有一大堆迫在眉睫的事。構(gòu)建錯誤會比產(chǎn)品錯誤更重要嗎?還有代碼質(zhì)量指標(biāo)方面,如果改進代碼質(zhì)量需要數(shù)年,值得著手解決這個問題嗎?
我們怎樣解決這類問題?這里有一些想法:
不要過分追求代碼質(zhì)量指標(biāo)。可以先減少測試的數(shù)量,直到代碼質(zhì)量報告達(dá)到了可以修復(fù)的水平。解決之后再把測試加回來。
定義問題的優(yōu)先級。產(chǎn)品問題優(yōu)先,然后才是構(gòu)建錯誤。在問題被完全解決之前,不要在損壞的代碼之上提交新代碼。
盡管想讓構(gòu)建服務(wù)器成為持續(xù)交付流水線的中心之一,但我們也要考慮當(dāng)構(gòu)建服務(wù)器癱瘓的時候,構(gòu)建和部署的流程不應(yīng)該停滯不前。為此,構(gòu)建本身應(yīng)該盡可能健壯,并且可以在任何主機上重復(fù)工作。
這對像Maven那樣的一些構(gòu)建來說相當(dāng)容易。可即便如此,一個Maven構(gòu)建也可能有無數(shù)的缺陷而使其無法被正常移植。
一個基于C語言的構(gòu)建會很難移植,如果你沒有幸運到所有的依賴都在操作系統(tǒng)庫里可用的地步。還是那句話,健壯性通常能夠值回票價。
總結(jié)
我們快速掃過了構(gòu)建代碼的系統(tǒng)。看過了用Jenkins構(gòu)建持續(xù)集成服務(wù)器,也檢查了許多可能發(fā)生的問題,DevOps工程師的生活總是很有意思,但并不總是很容易。
想了解更多IT資訊,請訪問中培偉業(yè)官網(wǎng):中培偉業(yè)