原地部署与蓝/绿部署
在 AWS 上自动化部署
Dunieski Otano
Amazon Web Services Solutions Architect
凌晨 2 点宕机
一次性部署失败
每台服务器都运行出错版本
客户看到错误长达 1 小时
回滚需要再次完整部署
为何部署策略很重要
不良发布会让服务
宕机
一次性部署 =
最快、风险最大
渐进发布 =
更慢、更安全
策略决定失败时的
影响范围
原地部署
部署到
同一组实例
上承载流量
分批
进行:先一半再一半,或逐台更新
每批
健康检查
后再继续
成本低;无需额外基础设施
蓝/绿部署
Blue
= 当前生产集群
Green
= 搭载新版本的新集群
负载均衡器
切换流量
从 blue 到 green
旧集群
保留可用
以便快速回滚
Lambda 与 ECS 天生支持蓝/绿
Lambda:通过
别名版本指针
切流量
ECS:通过
替换任务集
切流量
无需 EC2 式成倍扩容集群
仍需
选择部署配置
如何选择:原地 vs. 蓝/绿
预算紧、
低风险补丁
→ 原地
需要
零停机
或即时回滚 → 蓝/绿
单台遗留服务器 → 只能
原地
Lambda 或 ECS →
内置蓝/绿
CodeDeploy 中的回滚
回滚 =
重新部署上一次成功的修订版
部署失败
时自动触发
CloudWatch 警报
触发自动回滚
蓝/绿回滚:
将负载均衡器切回
让我们一起练习吧!
在 AWS 上自动化部署
Preparing Video For Download...