今天要說明的是ECS藍綠部署,在這之前要先說一下與滾動式更新在更新方式上的差別。
滾動式更新不論是原本的Task或新建出來的Task,都是在同一個TargetGroup內,如下圖。
藍綠部署則是會在不同的兩個TargetGroup進行切換。
下圖內,左邊是尚未更新的模樣,ALB會導向TargetGroup1,
開始更新時,ALB的流量除了導向TargetGroup1外,還會導向TargetGroup2。
達成指定的條件後,ALB就只會將流量導向TargetGroup2,切斷TargetGroup1的流量,並將TargetGroup1的Task收掉。
下一次更新時,則是同樣的步驟,從TargetGroup2最後轉移至TargetGroup1。
藍綠部署與滾動式更新除了TargetGroup的不同外,
還有一個大的差異在於,藍綠部署可以取消部署!
這是因為ALB同時連接兩個TargetGroup,而能達成的機制,
如果在更新時發現有問題,還能在最短的時間內回復原狀,
在實務上如果要進行不同機版本更新,會是一個好選擇。
想到明天還要補班就頭痛...
今天就到這,明天會說明藍綠部署的種類。