

# Amazon ECS 金丝雀部署所需的资源
<a name="canary-deployment-implementation"></a>

要使用支持托管流量转移的金丝雀部署，服务必须使用以下功能之一：
+ Elastic Load Balancing
+ Service Connect

以下列表简要概述了配置 Amazon ECS 金丝雀部署所需的内容：
+ 服务使用应用程序负载均衡器、网络负载均衡器或 Service Connect。配置相应的资源。
  + 应用程序负载均衡器：有关更多信息，请参阅[适用于蓝绿部署、线性部署和金丝雀部署的应用程序负载均衡器资源](alb-resources-for-blue-green.md)。
  + 网络负载均衡器：有关更多信息，请参阅[适用于 Amazon ECS 蓝绿部署、线性部署和金丝雀部署的网络负载均衡器资源](nlb-resources-for-blue-green.md)。
  + Service Connect：有关更多信息，请参阅[适用于 Amazon ECS 蓝绿部署、线性部署和金丝雀部署的 Service Connect 资源](service-connect-blue-green.md)。
+ 将服务部署控制器设置为 `ECS`。
+ 在服务定义中将部署策略配置为 `canary`。
+ 或者，配置其他参数，例如：
  + 新部署的烘焙时间
  + 在金丝雀阶段路由到新服务修订的流量百分比。
  + 将剩余流量转移到新服务修订之前在金丝雀阶段等待的持续时间。
  + 用于自动回滚的 CloudWatch 警报
  + 部署生命周期挂钩（这些挂钩是在指定部署阶段运行的 Lambda 函数）

## 最佳实践
<a name="canary-deployment-best-practices"></a>

请遵循下面的最佳实践以成功进行 Amazon ECS 金丝雀部署：
+ **确保您的应用程序可以处理同时运行的两个服务修订。**
+ **规划足够的集群容量，以便在部署期间处理两个服务修订。**
+ **在生产环境中实施回滚程序之前，先对其进行测试。**
+ 配置适当的运行状况检查，以准确反映应用程序的运行状况。
+ 设置烘焙时间，以便对绿色部署进行充分测试。
+ 实施 CloudWatch 警报，以自动检测问题并触发回滚。
+ 使用生命周期挂钩在每个部署阶段执行自动测试。
+ 从较小金丝雀百分比（5-10%）开始，以最大程度地减少出现问题时的影响。
+ 设置合适的评估期，以便有足够的时间收集有意义的性能数据。
+ 使用 CloudWatch 警报实施全面监控，以触发自动回滚。
+ 配置能够准确反映应用程序的就绪情况和功能的运行状况检查。
+ 在评估期间监控技术指标（响应时间、错误率）和业务指标。
+ 确保您的应用程序可以处理流量拆分，而不会出现会话或状态问题。
+ 规划回滚过程并定期对其进行测试，以确保它们在需要时正常工作。
+ 在工作时间安排金丝雀部署，以便团队可以进行监控和响应。
+ 在金丝雀部署之前，彻底验证暂存环境中的更改。
+ 记录人工干预和回滚决策的明确过程。