原地部署与蓝/绿部署

在 AWS 上自动化部署

Dunieski Otano

Amazon Web Services Solutions Architect

凌晨 2 点宕机

2.00

  • 一次性部署失败
  • 每台服务器都运行出错版本
  • 客户看到错误长达 1 小时
  • 回滚需要再次完整部署
在 AWS 上自动化部署

为何部署策略很重要

2.1

  • 不良发布会让服务宕机
  • 一次性部署 = 最快、风险最大
  • 渐进发布 = 更慢、更安全
  • 策略决定失败时的影响范围
在 AWS 上自动化部署

原地部署

in-place

  • 部署到同一组实例上承载流量
  • 分批进行:先一半再一半,或逐台更新
  • 每批健康检查后再继续
  • 成本低;无需额外基础设施
在 AWS 上自动化部署

蓝/绿部署

  • Blue = 当前生产集群
  • Green = 搭载新版本的新集群
  • 负载均衡器切换流量从 blue 到 green
  • 旧集群保留可用以便快速回滚

blue-green

在 AWS 上自动化部署

Lambda 与 ECS 天生支持蓝/绿

  • Lambda:通过别名版本指针切流量
  • ECS:通过替换任务集切流量
  • 无需 EC2 式成倍扩容集群
  • 仍需选择部署配置

ecs

在 AWS 上自动化部署

如何选择:原地 vs. 蓝/绿

  • 预算紧、低风险补丁 → 原地
  • 需要零停机或即时回滚 → 蓝/绿
  • 单台遗留服务器 → 只能原地
  • Lambda 或 ECS → 内置蓝/绿

decide

在 AWS 上自动化部署

CodeDeploy 中的回滚

rollback

  • 回滚 = 重新部署上一次成功的修订版
  • 部署失败时自动触发
  • CloudWatch 警报触发自动回滚
  • 蓝/绿回滚:将负载均衡器切回
在 AWS 上自动化部署

让我们一起练习吧!

在 AWS 上自动化部署

Preparing Video For Download...