藍/綠和紅/黑部署之間有什麼區別? - DZone DevOps

banq發表於2019-06-25

在部署集中式應用程式(如Web服務)的新版本時,只有在成功部署和可選地測試之後,才能使用策略將生產流量定向到新版本。此策略名稱為藍色/綠色或紅色/黑色,每種顏色代表目標環境的副本。流量被路由到一種顏色或另一種顏色。讓兩個環境並行執行託管不同版本的應用程式意味著可以切換流量,如果發現問題則再次返回,幾乎沒有停機時間。

那麼為什麼這種策略被稱為藍綠和紅黑?這些顏色是否意味著技術差異?

StackOverflow說......

我們的第一站是StackOverflow,在那裡我們發現了一個問題,“ 紅/黑部署和藍/綠部署有什麼區別? ”

得出的最高答案表明這兩個詞之間確實存在差異:

在藍綠色部署中,兩個版本可能暫時同時獲取請求,而在紅黑中,只有一個版本在任何時間點獲得流量。

然後有答案:

但紅黑部署是Netflix,Istio和其他支援容器編排的框架/平臺使用的新術語。

我經常看到紅/黑一詞歸功於Netflix和容器平臺一般建立的工具,所以讓我們去他們的文件看看他們如何定義這些策略。

Netflix,Kubernetes和Istio 說

Spinnaker是Netflix編寫的部署工具,它是開源的,任何人都可以使用。該工具包括一些有關其實現的概念的文件,包括有關部署策略的部分:

Spinnaker支援紅/黑(又名藍/綠)策略,在積極開發中採用滾動的紅/黑和金絲雀策略。

因此,與StackOverflow上的答案相反,Netflix將藍/綠和黑/紅視為同樣的事情。

由Cloud Native Computing Foundation製作的題為“Kubernete上的部署策略 ”的Kubernetes簡報中的幻燈片也記錄了藍色/綠色和紅色/黑色作為同義詞。

同樣,Istio部落格指的是藍/綠和黑/紅是同樣的東西。

結論

多年來,我聽過很多關於藍/綠和紅/黑之間差異的不同描述。一些與流量如何定向有關(DNS與負載均衡器),一些針對物理伺服器與容器化應用程式的參考解決方案,一些區分所有流量的硬切換與會話耗盡。但是,我從來沒有看到這些區別用於任何一致性,實際上當你深入研究如何使用藍色/綠色和紅色/黑色這樣的術語時,它們通常可互換使用或明確地稱為可互換。

可以肯定地說,您無法可靠地確定部署策略的特定技術方面,因為它被稱為實施藍/綠或紅/黑策略。在高階別(並且在Spinnaker,Kubernetes和Istio等工具的產品文件中明確提到),這兩個術語都指的是相同的東西,並且兩者之間的任何技術差異可能僅在特定團隊或公司內有意義。 。

 

相關文章