我们通常使用BlueGreen&滚动部署策略,
对于ECS容器实例中的docker容器;更新。
Ansible ECS模块允许通过以下模块实现此类部署策略:
https://docs.ansible.com/ansible/latest/modules/ecs_taskdefinition_module.html
https://docs.ansible.com/ansible/latest/modules/ecs_task_module.html
https://docs.ansible.com/ansible/latest/modules/ecs_service_module.html
AWS CDK是否为实施部署策略提供了此类构造?
CDK支持更高级别的ECS构造,称为"ECS模式"。其中之一是ApplicationLoadBalancedFargateService,它允许您在应用程序负载均衡器后面定义ECS Fargate服务。在这种情况下,支持开箱即用的滚动更新。您只需使用更新的Docker映像运行cdk deploy
,ECS就会负责部署。它将:
- 使用新的Docker镜像启动一个新任务
- 等待新部署的几次成功运行状况检查
- 开始向新任务发送新流量,同时让现有连接正常完成旧任务
- 所有旧连接完成后,ECS将自动停止旧任务
如果您的新任务没有启动或不正常,ECS将继续运行原始任务。
关于蓝绿部署,我认为它还没有在CloudFormation中得到支持。一旦完成,它就可以在CDK中实现。如果您可以在没有BlueGreen作为IaC的情况下生活,那么您可以手动定义CodeDeploy。
检查这个NPM插件,它有助于使用CDK进行蓝绿色部署。
https://www.npmjs.com/package/@cloudcomponents/cdk蓝绿色容器部署
现在云构建中支持蓝绿色部署。
https://aws.amazon.com/about-aws/whats-new/2020/05/aws-cloudformation-now-supports-blue-green-deployments-for-amazon-ecs/
不要认为CDK的实现已经完成。