前言
devops的概念已經在前一章已經說過了,下面介紹CICD的概念。
CI(Continuous Integration,持續集成)
持續集成中,開發人員將會頻繁地向主干提交代碼,這些新提交的代碼在最終合並到主干前,需要經過編譯和自動化測試流進行驗證。
持續集成是在源代碼變更后自動檢測、拉取、構建和(在大多數情況下)進行單元測試的過程。持續集成的目標是快速確保開發人員新提交的變更是好的,並且適合在代碼庫中進一步使用。CI的流程執行和理論實踐讓我們可以確定新代碼和原有代碼能否正確地集成在一起。
CD(Continuous Delivery,持續交付)
完成 CI 中構建及單元測試和集成測試的自動化流程后,持續交付可自動將已驗證的代碼發布到存儲庫;代碼庫即我們常說的倉庫版本(release)。
為了實現高效的持續交付流程,務必要確保 CI 已內置於開發管道。持續交付的目標是擁有一個可隨時部署到生產環境的代碼庫。
在持續交付中,每個階段(從代碼更改的合並,到生產就緒型構建版本的交付)都涉及測試自動化和代碼發布自動化。在流程結束時,運維團隊可以快速、輕松地將應用部署到生產環境中或發布給最終使用的用戶。
CD(Continuous Deployment,持續部署)
對於一個成熟的CI/CD管道(Pipeline)來說,最后的階段是持續部署。作為持續交付——自動將生產就緒型構建版本發布到代碼存儲庫的延伸,持續部署可以自動將應用發布到生產環境。
持續部署意味着所有的變更都會被自動部署到生產環境中。持續交付意味着所有的變更都可以被部署到生產環境中,但是出於業務考慮,可以選擇不部署。如果要實施持續部署,必須先實施持續交付。
持續交付並不是指軟件每一個改動都要盡快部署到產品環境中,它指的是任何的代碼修改都可以在任何時候實施部署。
持續交付表示的是一種能力,而持續部署表示的則一種方式。持續部署是持續交付的最高階段
總結
概念性的東西每個人的理解都有所不同。下面留一張關於devops、ci、cd的關系圖,大家可以借鑒借鑒
參考地址:https://blog.jjonline.cn/linux/238.html