淺談持續整合、持續佈署與交付(CI/CD)

淺談持續整合、持續佈署與交付(CI/CD)

何謂 CI/CD ?

持續整合、持續佈署與交付(CI/CD)是一種軟體工程的方法或實踐,更頻繁且持續的進行整合所有開發者的開發內容至共同的開發主線,並且進行佈署及交付,縮短每次的整合與測試時間,不用等到大量的程式功能開發完成後才進行整合,避免一些不必要的程式錯誤。

在軟體開發過程中,對所有開發者所交付的程式碼進行整合測試時,發生如編譯錯誤,輸出結果不正確,功能沒有反應等各種問題是非常常見的,尤其在大型且複雜的系統開發,且開發者使用的開發環境差異或變動時,或是一次增加或修改愈多的程式功能後才進行整合,皆使整合時所出現的問題更加難以解決,更嚴重的問題則造成開發中的程式必須重構。

典型的CI/CD過程

CI/CD過程中,還涉及到很多其他觀念與流程,如版本控制、程式碼倉儲、佈署環境建置、測試報表、發行管理等等,而軟體也可能要在多種環境下的測試執行結果已確保軟體功能的一致性與品質,使整個過程相當複雜與耗時,因此我們需要仰賴一些自動化的工具來達成。

CI/CD 工具

目前幾個CI/CD相關的工具有老牌的Jenkins、基於Docker執行的Drone、支援OSX系統的Travis-CI、提供免費企業版的Circle-CI、提供完整DevOps的Gitlab。上述的CI/CD工具或系統大多都有相同的功能和特點,差別在於是否需要付費及支援性的完整。

最後,CI/CD在DevOps中扮演極重要的角色,透過CI/CD使建構、測試與發佈軟體的流程能更加快速與可靠,開發與營運之間的協作更加緊密與有效率。

撰文: 鄭毓融 迎棧科技軟體工程師

訂閱電子報

Select list(s)*

 

Loading