Amazon ECS 金丝雀部署所需的资源
要使用支持托管流量转移的金丝雀部署,服务必须使用以下功能之一:
-
Elastic Load Balancing
-
Service Connect
注意
金丝雀部署不支持网络负载均衡器。对于网络负载均衡器配置,请改用蓝绿部署。
以下列表简要概述了配置 Amazon ECS 金丝雀部署所需的内容:
-
您的服务使用应用程序负载均衡器或 Service Connect。配置相应的资源。
-
应用程序负载均衡器:有关更多信息,请参阅适用于蓝绿部署、线性部署和金丝雀部署的应用程序负载均衡器资源。
-
Service Connect:有关更多信息,请参阅适用于 Amazon ECS 蓝绿部署、线性部署和金丝雀部署的 Service Connect 资源。
-
-
将服务部署控制器设置为
ECS。 -
在服务定义中将部署策略配置为
canary。 -
或者,配置其他参数,例如:
-
新部署的烘焙时间
-
在金丝雀阶段路由到新服务修订的流量百分比。
-
将剩余流量转移到新服务修订之前在金丝雀阶段等待的持续时间。
-
用于自动回滚的 CloudWatch 警报
-
部署生命周期挂钩(这些挂钩是在指定部署阶段运行的 Lambda 函数)
-
最佳实践
请遵循下面的最佳实践以成功进行 Amazon ECS 金丝雀部署:
-
确保您的应用程序可以处理同时运行的两个服务修订。
-
规划足够的集群容量,以便在部署期间处理两个服务修订。
-
在生产环境中实施回滚程序之前,先对其进行测试。
-
配置适当的运行状况检查,以准确反映应用程序的运行状况。
-
设置烘焙时间,以便对绿色部署进行充分测试。
-
实施 CloudWatch 警报,以自动检测问题并触发回滚。
-
使用生命周期挂钩在每个部署阶段执行自动测试。
-
从较小金丝雀百分比(5-10%)开始,以最大程度地减少出现问题时的影响。
-
设置合适的评估期,以便有足够的时间收集有意义的性能数据。
-
使用 CloudWatch 警报实施全面监控,以触发自动回滚。
-
配置能够准确反映应用程序的就绪情况和功能的运行状况检查。
-
在评估期间监控技术指标(响应时间、错误率)和业务指标。
-
确保您的应用程序可以处理流量拆分,而不会出现会话或状态问题。
-
规划回滚过程并定期对其进行测试,以确保它们在需要时正常工作。
-
在工作时间安排金丝雀部署,以便团队可以进行监控和响应。
-
在金丝雀部署之前,彻底验证暂存环境中的更改。
-
记录人工干预和回滚决策的明确过程。