更新時間:2023-02-04 11:04:33作者:佚名
如果對devops有一定了解的朋友,一定會經常聽到這幾個關鍵詞:持續集成、持續交付和持續部署,那么這幾個有什么關聯、區別呢,下面內容教大家怎么區分~
持續集成
持續集成強調開發人員提交了新代碼之后,立刻進行構建、(單元)測試。根據測試結果,我們可以確定新代碼和原有代碼能否正確地集成在一起。
持續交付
持續交付在持續集成的基礎上,將集成后的代碼部署到更貼近真實運行環境的「類生產環境」(production-like environments)中。比如,我們完成單元測試后,可以把代碼部署到連接數據庫的 Staging 環境中更多的測試。如果代碼沒有問題,可以繼續手動部署到生產環境中。
持續部署
持續部署則是在持續交付的基礎上,把部署到生產環境的過程自動化。
舉個栗子:
你開了一家公司,雇了很多碼農在一起寫代碼。
你說,要用 Gitlab 做代碼管理。當一個碼農在自己的開發機上寫好代碼之后,要合并到主分支里,他首先要發起一個 Merge Request(MR),這會在一個特定服務器上觸發一次對他提交的代碼的檢查,包括代碼格式檢查、依賴關系檢查以及單元測試等一系列檢查,等通過了全部檢查,他就可以將代碼合并到主分支,否則他需要按照錯誤提示進行修改,然后發起新一輪的檢查。然后呢,每天晚上 10 點會有一個定時任務從主分支上拿最新的代碼,進行編譯打包部署是什么意思,最后將打包好的程序推送到一個服務器上保存,這個服務器叫做 Artifact Repository。
你又說,要每天將當天打包好的程序部署到測試環境上。也就是說,一個碼農晚上 10 點之前提交了代碼,那他第二天就可以在測試環境上看到自己新提交的代碼的效果了。
你還說,每一個月要在生產環境上部署一個穩定的發布版本。
以上三段內容是一個軟件從開發到部署的流程的簡單描述,也分別對應持續集成、持續交付以及持續部署。
總結:集成、交付和部署是軟件開發到發布流程中的不同階段。那所謂的持續是相對于過去的流程提出的。過去的流程是所有人寫好代碼之后再進行合并,然后再進行測試,最后再發布。這種流程會把風險堆到軟件發布前的最后階段。那持續的概念就是,做一點就馬上遞交給下一個流程,這樣能夠盡早地發現并解決問題。
PS:純干貨部署是什么意思,大佬們走波關注唄~