更新時間:2023-02-04 11:04:33作者:佚名
如果對devops有一定了解的朋友,一定會經(jīng)常聽到這幾個關(guān)鍵詞:持續(xù)集成、持續(xù)交付和持續(xù)部署,那么這幾個有什么關(guān)聯(lián)、區(qū)別呢,下面內(nèi)容教大家怎么區(qū)分~
持續(xù)集成


持續(xù)集成強調(diào)開發(fā)人員提交了新代碼之后,立刻進(jìn)行構(gòu)建、(單元)測試。根據(jù)測試結(jié)果,我們可以確定新代碼和原有代碼能否正確地集成在一起。
持續(xù)交付


持續(xù)交付在持續(xù)集成的基礎(chǔ)上,將集成后的代碼部署到更貼近真實運行環(huán)境的「類生產(chǎn)環(huán)境」(production-like environments)中。比如,我們完成單元測試后,可以把代碼部署到連接數(shù)據(jù)庫的 Staging 環(huán)境中更多的測試。如果代碼沒有問題,可以繼續(xù)手動部署到生產(chǎn)環(huán)境中。
持續(xù)部署


持續(xù)部署則是在持續(xù)交付的基礎(chǔ)上,把部署到生產(chǎn)環(huán)境的過程自動化。
舉個栗子:
你開了一家公司,雇了很多碼農(nóng)在一起寫代碼。

你說,要用 Gitlab 做代碼管理。當(dāng)一個碼農(nóng)在自己的開發(fā)機上寫好代碼之后,要合并到主分支里,他首先要發(fā)起一個 Merge Request(MR),這會在一個特定服務(wù)器上觸發(fā)一次對他提交的代碼的檢查,包括代碼格式檢查、依賴關(guān)系檢查以及單元測試等一系列檢查,等通過了全部檢查,他就可以將代碼合并到主分支,否則他需要按照錯誤提示進(jìn)行修改,然后發(fā)起新一輪的檢查。然后呢,每天晚上 10 點會有一個定時任務(wù)從主分支上拿最新的代碼,進(jìn)行編譯打包部署是什么意思,最后將打包好的程序推送到一個服務(wù)器上保存,這個服務(wù)器叫做 Artifact Repository。
你又說,要每天將當(dāng)天打包好的程序部署到測試環(huán)境上。也就是說,一個碼農(nóng)晚上 10 點之前提交了代碼,那他第二天就可以在測試環(huán)境上看到自己新提交的代碼的效果了。
你還說,每一個月要在生產(chǎn)環(huán)境上部署一個穩(wěn)定的發(fā)布版本。

以上三段內(nèi)容是一個軟件從開發(fā)到部署的流程的簡單描述,也分別對應(yīng)持續(xù)集成、持續(xù)交付以及持續(xù)部署。
總結(jié):集成、交付和部署是軟件開發(fā)到發(fā)布流程中的不同階段。那所謂的持續(xù)是相對于過去的流程提出的。過去的流程是所有人寫好代碼之后再進(jìn)行合并,然后再進(jìn)行測試,最后再發(fā)布。這種流程會把風(fēng)險堆到軟件發(fā)布前的最后階段。那持續(xù)的概念就是,做一點就馬上遞交給下一個流程,這樣能夠盡早地發(fā)現(xiàn)并解決問題。
PS:純干貨部署是什么意思,大佬們走波關(guān)注唄~

2023-02-04 10:01
2023-02-03 08:05