1. 程式人生 > >CI(持續整合)/CD(持續部署)

CI(持續整合)/CD(持續部署)

  • 什麼是CI(持續整合)

持續整合(ContinousIntergration,CI)是一種軟體開發實踐,即團隊開發成員經常整合它們的工作,通常每個成員每天至少整合一次,也就意味著每天可能會發生多次整合。每次整合都通過自動化的編譯、釋出、自動化迴歸測試來驗證,從而儘快地發現整合錯誤。許多團隊發現這個過程可以大大減少整合的問題,讓團隊能夠更快的開發內聚的軟體。持續整合是為了持續交付。 沒有單元測試的持續整合基本無意義。

  • 什麼是CD(持續部署)

持續部署(ContinousDelivery,CD)在持續整合的基礎上,將整合後的程式碼部署到更貼近真實執行環境中。比如,我們完成單元測試後,可以把程式碼部署到測試環境中,交付給質量團隊或者使用者,以供評審。如果評審通過, 程式碼就進入生產階段。

  • 常規的測試過程:開發送測一個版本——>測試人員從配置庫下載版本——>編譯版本——>部署到測試環境——>進行冒煙測試——>進行功能測試。 而這些過程完全可以由CI/CD來替代。
  • DevOps

DevOps是一個完整的面向IT運維的工作流,以IT自動化以及CI、CD為基礎,來優化程式開發、測試、系統運維等所有環節。

DevOps實際是一種文化上的變遷,代表了開發、運維、測試等環節之間的協作,因此DevOps工具是非常多種多樣的,甚至可以由多種工具組成一個完整的DevOps工具鏈。此類工具可以應用於一種或多種類別,並可體現出軟 件開發和交付過程的不同階段:

①編碼:程式碼開發和審閱,版本控制工具、程式碼合併工具

②構建:持續整合工具、構建狀態統計工具

③測試:通過測試和結果確定績效的工具

④打包:成品倉庫、應用程式部署前暫存

⑤釋出:變更管理、釋出審批、釋出自動化

⑥配置:基礎架構配置和部署,基礎架構即程式碼工具

⑦監視:應用程式效能監視、終端使用者體驗