藍綠部署



問題陳述

微服務架構將應用程式構建為一組松耦合的微服務,每個服務都應該以敏捷的方式獨立開發,以實現持續交付/部署。當使用微服務架構構建大型複雜應用程式時,主要問題是如何設計松耦合的微服務,或者如何將大型應用程式分解為小型松耦合的服務,同時保持系統在生產環境中的穩定性。

解決方案

我們可以使用藍綠部署來定義部署新開發的微服務。在這種模式下,使用者流量會逐漸從舊應用程式轉移到新的微服務應用程式。一旦微服務在生產環境中可用,負載均衡器就會將針對舊應用程式的請求重定向到新的微服務。

  • 藍色環境 - 在生產環境中執行的舊應用程式稱為藍色環境。

  • 綠色環境 - 部署的新服務複製了舊應用程式的給定部分,稱為綠色環境。

因此,隨著時間的推移,微服務會增加,而單體應用會隨著功能從單體應用遷移到微服務應用程式而縮減。

示例

考慮一個線上書店的示例。最初,我們只開發了圖書目錄管理服務,其他服務由遺留的單體應用程式支援。在開發過程中,越來越多的服務被開發出來,並且功能從單體應用中遷移出來。

Blue Green Deployment Design Pattern

這種部署模式有助於減少停機時間,甚至在從單體應用遷移到基於微服務的應用程式時實現零停機時間。

廣告