本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 會確保轉移流量是安全的。