一千萬個為什麽

搜索


Here is a quote from the current content of :

...將開發人員的工作代碼副本經常合並到共享代碼庫以避免或最小化集成問題的過程。

OK, I get that. But then there is also and , and that's where I continuously get a bit lost:

  • 如果持續集成持續交付和/或持續部署有關,假設沿著行的某處(通過 integration ,您最終會在目標環境中提供 一切都將 部署
  • 持續投放持續投放有什麽區別?

回到過去,在DevOps被稱為DevOps之前,我們使用了可能有助於理解這些新DevOps術語的術語,例如:

  • promote to (or demote from) some pre-prod target, optionally combined with some type of regeneration process (compiles, binds, etc) to package all related components together in executable-like things. That's what should be similar/close to continuous integration, or not?
  • distribute to some target environment, using something like FTP (if standard copies cannot bridge the gap), but do not yet activate it in the target. That's what should be similar/close to continuous delivery, or not?
  • install (or activate) in some target environment, combined with things like binds, stop/start operations, etc. That's what should be similar/close to continuous deployment, or not?

轉載註明原文: 持續集成與持續交付/部署有何關系?

一共有 4 個回答:

持續交付和持續部署通過在過程中增加“部署到生產”步驟,進一步實現持續集成。 持續交付和部署之間的區別在於,交付此步驟是手動完成的,並且是自動部署。

Difference between Continuous Integration, Continuous Delivery and Continuous Deployment

持續集成,持續交付和持續部署之間的區別。從 codeproject.com

無論您是連續交付還是持續部署,都是實施選擇。如果您進行持續部署,則在驗收測試通過後,將自動部署代碼更改。這可能會或可能不會為您的產品所需。通過持續交付,人們可以選擇是否部署特定的代碼更改(以及可能在何處部署)。

由於連續交付和部署之間的差異很小,許多人不知道確切的差異,所以這兩個術語有時可以互換使用。

持續交付和持續部署(CD)或多或少是相同的事情*。每次更改被認為是“好去處”(測試/驗證),應立即發布。隨著工作的完成,您可以每天多次這樣做。

持續集成(CI)只是指經常將代碼合並在一起,以確保功能分支不會偏離主“主”分支,還可以非常快速地知道代碼中是否存在任何問題整合的角度 - 即你是否在改變東西的同時打破任何功能。

就他們如何相互關聯而言,CI極大地幫助驗證代碼,以便能夠快速發布(CD)。你仍然可以在沒有CI的情況下實現CD(反之亦然),但是你會發現,通常它會讓你的代碼更早更容易集成,並且經常更快地發現問題,這反過來會讓你更快地解決問題,最後更快地提供您的功能!

*編輯:這裏是一篇討論差異的文章。 https://puppet.com/blog/continuous-交貨-VS-連續部署,什麽-S-DIFF 持續交付並不總是意味著實際部署到生產中,而是意味著不斷部署到類似生產環境中,並且相信這些更改可以在業務準備就緒後隨時投入生產。實際上,大多數人會混淆這些術語。

特定版本的軟件產品在交付或部署之前必須先完成其整合階段。

對於連續交付/部署連續集成是必須的。否則,如果集成完成事件距離“連續”屬性太遠,那麽可能的交付/部署也是如此(只有集成版本的一個子集通常符合交付/部署的條件)。

更新:我的回答只強調了CI和(兩個)CD之間的依賴關系,THelper的答案涵蓋了這個術語。

我唯一的評論是關於 deployment 的(重載)使用。非生產環境中的部署是真實的。它們甚至可能經常發生 - 例如,作為連續交付期間各個測試階段的一部分。但是,這不會使這種部署持續部署。持續部署特別指的是生產環境中的部署。

基本上,持續集成是持續交付和持續部署的一部分,除了發布會自動發布。您還可以將持續交付視為持續集成的合乎邏輯的下一步,並且可以在所有環境中運行。 持續集成還有助於工件驗證,因此可以更快部署。雖然沒有持續集成是不可能實現持續部署的,並且通過持續集成更容易捕獲錯誤。 所有這些“持續的事情”最終都是為了消除開發工作流程中不必要的行為。最重要的是,從技術和商業角度來看,CI/CD都很重要。不采用這些DevOps原則的公司有可能冒著恐龍的危險。在當今快節奏的IT環境中,它可能是 DevOps或死亡。