持續集成、持續交付以及持續部署

我們經常會聽到持續集成(Continuous Integration)、持續交付(Continuous Delivery)和持續部署(Continuous Deployment)這三個名詞,這三個名詞之間有什么聯系,有什么區別,以及為什么要做持續集成,持續交付,讓我們帶著疑問往下看。
圖片來源

三者關系圖

持續集成[Continuous Integration]

持續集成是已代碼的提交活動來觸發的。持續集成涉及到一下幾個步驟:

  • 開發人員提交代碼到代碼倉庫
  • 持續集成服務器檢測到代碼更新,從代碼倉庫拉取最新的代碼
  • 代碼更新完畢后,持續集成服務器自動進行編譯、代碼靜態檢查以及測試(單元測試)

圖片來源

Continuous Integration

持續交付[Continuous Integration]

持續交付是建立在持續集成成功的基礎上的,比如代碼編譯成功,并且通過了單元測試,這個時候我們可以把代碼部署到測試環境(也就是和生產環境相近的環境)在這里我們完成更多的測試(自動化契約測試、自動化UI測試等),通過一系列測試后,通過手動的方式把代碼部署到生產環境上。

圖片來源

Continuous Integration

持續部署[Continuous Integration]

持續部署是在持續交付成功的基礎上,通過自動化的方式把代碼部署到生產環境上。


Continuous Integration

CI/CD的價值

“Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.” — Martin Fowler
Martin Fowler曾經說過持續集成并不能消除BUG,但是能容易的發現BUG,修復BUG,從而提升產品的質量。那么CI/CD給團隊帶來了哪些價值:

  • 減少風險。CI保證開發人員提交的代碼是安全可靠的。開發人員每次提交代碼都會觸發CI,從而會自動進行靜態代碼檢查,單元測試。CD階段接口測試,UI測試都是自動化進行。整個交付標準化,可重復并且可靠
  • 快速發布。整個流程自動化發布,提升了效率,能夠更快的迭代
  • 整個流程可視化。通過CI/CD工具,整個流程可視化,我們可以清楚的看到哪個階段失敗
  • 更好的團隊協作方式。開發,QA以及運維緊密聯系在一起,更加高效

參考資料

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容