談談持續整合 持續交付 持續部署

2021-08-28 06:16:28 字數 2112 閱讀 5024

經常會聽到持續整合,持續交付,持續部署,三者究竟是什麼,有何聯絡和區別呢?什麼是「持續」?

所謂的持續,就是說每完成乙個完整的部分,就向下個環節交付,發現問題可以馬上調整。是的問題不會放大到其他部分和後面的環節。

這種做法的核心思想在於:既然事實上難以做到事先完全了解完整的、正確的需求,那麼就乾脆一小塊一小塊的做,並且加快交付的速度和頻率,使得交付物盡早在下個環節得到驗證。早發現問題早返工。

假如把開發工作流程分為以下幾個階段:編碼 -> 構建 -> 整合 -> 測試 -> 交付 -> 部署

the product managers' guide to continuous delivery and devops 文中對「持續整合(continuous integration)」、「持續交付(continuous delivery)」和「持續部署(continuous deployment)」這三個概念有很詳細的解釋。

持續整合

持續整合指的是,頻繁地(一天多次)將**整合到主幹。強調開發人員提交了新**之後,立刻進行構建、(單元)測試。根據測試結果,我們可以確定新**和原有**能否正確地整合在一起。

好處在於: 快速發現錯誤。每完成一點更新,就整合到主幹,可以快速發現錯誤,定位錯誤也比較容易。

持續整合的目的,就是讓產品可以快速迭代,同時還能保持高質量。它的核心措施是,**整合到主幹之前,必須通過自動化測試。只要有乙個測試用例失敗,就不能整合。

martin fowler說過,"持續整合並不能消除bug,而是讓它們非常容易發現和改正。"

持續交付

持續交付(continuous delivery)指的是,頻繁地將軟體的新版本,交付給質量團隊或者使用者,以供評審。如果評審通過,**就進入生產階段。

持續交付可以看作持續整合的下一步。它強調的是,不管怎麼更新,軟體是隨時隨地可以交付的。

持續交付在持續整合的基礎上,將整合後的**部署到更貼近真實執行環境的「類生產環境」(production-like environments)中。比如,我們完成單元測試後,可以把**部署到連線資料庫的 staging 環境中更多的測試。如果**沒有問題,可以繼續手動部署到生產環境中。

持續交付在持續整合的基礎上,將整合後的**部署到更貼近真實執行環境的「類生產環境」(production-like environments)中。持續交付優先於整個產品生命週期的軟體部署,建立在高水平自動化持續整合之上。

試想想,如果說等到所有東西都完成了才向下個環節交付,導致所有的問題在最後爆發出來,解決成本巨大甚至無法解決。比如,我們完成單元測試後,可以把**部署到連線資料庫的 staging 環境中進行更多的自動化測試。如果**沒有問題,可以繼續手動部署到生產環境中。當然,持續交付並不是指軟體每乙個改動都要盡快部署到產品環境中,它指的是任何的**修改都可以在任何時候實施部署。

持續部署

持續部署(continuous deployment)是持續交付的下一步,指的是**通過評審以後,自動部署到生產環境。

持續部署的目標是,**在任何時刻都是可部署的,可以進入生產階段。

持續部署則是在持續交付的基礎上,把部署到生產環境的過程自動化。

持續整合、持續交付、持續部署恰恰可以早發現早解決,從而可以避免這個問題。

參考如何理解持續整合、持續交付、持續部署?

the product managers』 guide to continuous delivery and devops

持續整合是什麼?

談談持續整合,持續交付,持續部署之間的區別

持續整合 持續交付 持續部署

持續整合 持續整合強調開發人員提交了新 之後,立刻進行構建 單元 測試。根據測試結果,我們可以確定新 和原有 能否正確地整合在一起。持續交付 持續交付在持續整合的基礎上,將整合後的 部署到更貼近真實執行環境的 類生產環境 production like environments 中。比如,我們完成單...

持續整合 持續交付 持續部署

參考 1 continuous integration 持續整合 持續整合強調對於開發人員的每個提交,立刻進行構建 單元 測試。根據測試結果,我們可以確定新 和原有 能否正確地整合在一起。2 continuous delivery 持續交付 持續交付在持續整合的基礎上,將整合後的 部署到更貼近真實執...

持續整合 持續交付 持續部署簡介

相信你一定聽過持續整合 持續交付 持續部署這些名詞。持續整合 持續整合是指在軟體開發過程中,頻繁地將 整合到主幹上,然後進行自動化測試。持續交付 持續交付是指在持續整合的基礎上,將整合後的 部署到更貼近真實執行環境的 類生產環境 production like environments 中。比如,我...