就地與藍綠部署
在 AWS 上自動化部署
Dunieski Otano
Amazon Web Services Solutions Architect
凌晨 2 點的大當機
一次全量部署失敗
每台伺服器都跑到壞版本
客戶看到錯誤長達 1 小時
回滾還要再做一次完整部署
為何部署策略很重要
壞版發佈可能把服務
打掛
全量一次=
最快、風險最高
逐步推出=
較慢、更安全
策略可控管失敗時的
影響範圍
就地部署(In-place)
部署到服務流量的
同一批實例
分批
進行:一半再一半;或逐台
每批
通過健全檢查
才繼續
便宜;不需額外基礎設施
藍綠部署(Blue/green)
Blue
=現行正式環境的叢集
Green
=新版本的全新叢集
負載平衡器
切換流量
從 blue 到 green
舊叢集
保留可用
以便快速回滾
Lambda 與 ECS 天生支援藍綠
Lambda:透過
別名版本指標
切換流量
ECS:透過
替換的 task set
切換流量
不需像 EC2 一樣重複建立叢集
你仍需
選擇部署組態
就地 vs 藍綠:如何選擇
預算吃緊、
低風險修補
→ 就地
需要
零停機
或即時回滾 → 藍綠
單一傳統伺服器 →
就地
唯一可行
Lambda 或 ECS →
內建藍綠
在 CodeDeploy 中回滾
回滾=
重新部署上一個成功修訂版
可在
部署失敗
時自動觸發
可在
CloudWatch 警示
時自動觸發
藍綠回滾:
把負載平衡器切回去
一起來練習吧!
在 AWS 上自動化部署
Preparing Video For Download...