關於持續集成(CI)的分享交流

持續集成(Continuous integration)簡稱CI,是軟件開發的一種實踐方式,要求開發團隊經常性進行系統集成。通過實施自動化構建,能夠實現經常性、高頻率的構建,並且在不斷的集成過程中,持續增加軟件功能,並能儘早發現系統錯誤。

簡單說,持續集成分爲兩個概念,持續和集成。

集成

軟件項目都是由多模塊組成,並且由不同的人員,甚至由不同的團隊完成各模塊開發,那麼軟件在最終交付之前,必須保證能夠順利地組合在一起,這個組合的過程就是集成。

集成的具體工作可能包含聯合編譯、單元測試、統一打包等等。

在項目進行集成的過程中,可能會暴露出各種問題,包括模塊間接口對接失敗、模塊間存在衝突,甚至能反應出架構設計缺陷。所以,要在軟件開發的過程中儘早地進行集成嘗試,若等到臨近項目交付纔開始做集成工作,那將非常糟糕,一定會造成項目延期。

持續

持續是指,不僅僅在交付前進行項目集成,要在整個開發過程中不斷進行集成工作,甚至從項目一開始就進行集成工作。

因爲集成工作能夠有效地進行項目驗證,那麼多次集成便可以持續發現項目隱患,也就能在開發過程中儘早發現問題並持續改善。持續集成的效果和敏捷開發思想一脈相承,所以,持續集成是敏捷開發的有力保障。

但是過多的集成次數必然導致人力的浪費,人力的限制也同時限制持續集成的頻率,所以,採用自動化集成是持續集成的成敗關鍵。

編譯構建和持續集成的關係

脈衝雲的編譯構建服務就是面向持續集成打造的在線的構建服務,或稱爲持續集成器。

如上文所述,持續集成是一種開發實踐,並非是指某一個工具。而要實現持續集成,必須要自動化的編譯構建做支持,因爲純人力無法滿足高頻集成要求。

自動化的編譯構建服務是持續集成最關鍵的環節,但是持續集成實踐並非只靠編譯構建一個環節實現,還需要代碼倉庫、接口測試、鏡像倉庫、部署管理等環境配合使用。

編譯構建服務作爲持續集成實踐最重要的一環,主要起到如下作用:

安裝源碼所需依賴

  • 執行JUnit、PHPUnit等單元測試工具
  • 執行Jlint、ESLint等語法檢查工具
  • 將源碼編譯成二進制程序
  • 使用Meven/Gradle等工具將源碼打包成WAR/JAR
  • 使用Webpack/Gulp等工具打包前端資源
  • 將程序打包成Docker鏡像
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章