Amazon ECS 藍/綠部署 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon ECS 藍/綠部署

藍/綠部署是一種發行方法,可透過執行兩個稱為藍和綠的相同生產環境來減少停機時間和風險。藉助 Amazon ECS 藍/綠部署,您可以先驗證新的服務修訂版,再將生產流量導向這些修訂版。這種方法提供了一種更安全的變更部署方式,並且能在需要時快速復原。

優勢

使用藍/綠部署具有以下優勢:

  • 在切換生產之前,透過使用生產流量進行測試來降低風險。您可以在將生產流量導向新部署之前,使用測試流量對部署進行驗證。

  • 零停機時間部署。在整個部署程序中,生產環境仍然可用,以確保持續的服務可用性。

  • 如果偵測到問題,可輕鬆復原。如果綠色部署發生問題,您可以快速還原至藍色部署,而不會造成長時間的服務中斷。

  • 受控的測試環境。綠色環境提供隔離的空間,可在完全部署之前使用實際流量模式測試新功能。

  • 可預測的部署程序。具有定義的生命週期階段的結構化方法,可讓部署更加一致且可靠。

  • 透過 lifecycle hook 實現自動化驗證。您可以在部署的各個階段實作自動化測試,以驗證功能。

術語

下列是 Amazon ECS 藍/綠部署術語:

  • 封裝時間 – 在生產流量轉移後,藍色與綠色服務修訂版同時執行的持續時間。

  • 藍色部署 – 要取代的目前生產服務修訂版。

  • 綠色部署 – 要部署的新服務修訂版。

  • 生命週期階段 – 部署操作中的一系列事件,例如「生產流量轉移後」。

  • Lifecycle hook – 在特定生命週期階段驗證部署的 Lambda 函式。

  • 接聽程式 - 使用您設定的通訊協定和連接埠檢查連線請求的 ELB 資源。您為接聽程式定義的規則決定了 Amazon ECS 如何將請求路由至已註冊的目標。

  • 規則 - 與接聽程式相關聯的 ELB 資源。規則定義了請求的路由方式,包含動作、條件與優先順序。

  • 目標群組 - 用來將請求路由到一或多個已註冊目標 (例如 EC2 執行個體) 的 ELB 資源。當您建立接聽程式時,可以為其預設動作指定一個目標群組。流量會轉送至接聽程式規則中指定的目標群組。

  • 流量轉移 – Amazon ECS 用於將流量從藍色部署轉移到綠色部署的程序。對於 Amazon ECS 藍/綠部署,所有流量都會一次從藍色服務轉移到綠色服務。

考量事項

選擇部署類型時,請考量下列事項:

  • 資源用量 – 藍/綠部署會暫時同時執行藍色與綠色服務修訂版,這可能會在部署期間使資源用量加倍。

  • 部署監控 – 藍/綠部署會提供更詳細的部署狀態資訊,便於您監控部署程序的每個階段。

  • 復原 – 藍/綠部署會在偵測到問題時更輕鬆地復原至先前的版本,因為藍色修訂版會持續執行,直到封裝時間過期為止。

  • Network Load Balancer 生命週期掛鉤:如果您使用 Network Load Balancer 進行藍/綠部署,則每個生命週期掛鉤都會有額外的 10 分鐘。這是因為 Amazon ECS 會確保轉移流量是安全的。