写点什么

亚马逊云科技推出 ECS 内置蓝绿部署功能

作者:Matt Saunders

  • 2025-07-24
    北京
  • 本文字数:1522 字

    阅读完需:约 5 分钟

大小:762.06K时长:04:20
亚马逊云科技推出ECS内置蓝绿部署功能

亚马逊云科技(Amazon Web Services)针对亚马逊弹性容器服务(Amazon Elastic Container Service,简称 ECS)推出了一个新的内置功能:蓝绿部署。借助这项功能,开发团队既能安全地部署容器化应用程序,而且在出现问题时还能够近乎实时的回滚,这样就不需要使用 AWS CodeDeploy 实现复杂的变通方案了。

 

这项新功能解决了开发团队经常面临的一项挑战:以前在向 ECS 发布时,为了实现蓝绿功能,他们不得不构建和维护自定义工具。亚马逊首席开发大使、公告作者Donnie Prakoso解释说,“在规模比较大的情况下,开发团队需要花费宝贵的时间构建和维护没什么差异的部署工具,而这些时间本可以用于业务创新”。



蓝绿部署是一种软件发布策略,它维护两个相同的生产环境。现有的“蓝”环境继续服务于实时流量,当要部署新版本的应用程序时,就新建一个“绿”环境。在对绿环境进行彻底地测试并且监控没有问题之后,流量从蓝环境转移到绿环境,确保用户受到的干扰最小,并在需要时能够轻松地回滚到之前的版本。

 

在该公告发布之前,想要在 ECS 上实现蓝绿部署能力,亚马逊云科技的客户不得不依赖AWS CodeDeploy。这会带来额外的配置和设置复杂性。工程师们采用了各种方法来解决这个问题,包括在负载均衡器后面交换自动扩展组和更新自动扩展组的启动配置。虽然 CodeDeploy 方法功能齐全,但团队仍需要创建单独的 CodeDeploy 应用程序和部署组,并管理复杂的 IAM 角色。AWS CodeDeploy 管理蓝绿部署过程,但团队仍需手动配置负载均衡监听器和目标组。现在,亚马逊 ECS 自动编排整个工作流程,提供事件钩子,允许团队在将新版本软件暴露给最终用户之前,使用合成流量验证新版本。

 

对于这份新公告,来自 The Scale Factory 的 Chris Musther在LinkedIn上写道:“用 CodeDeploy 也可以,文档中有说明——只是这项新功能简化了这个过程,而且功能更丰富。”

 

这项新功能直接集成到了现有的 ECS 配置中,可以通过 ECS 控制台、AWS CLI 或基础设施即代码工具启用。用户可以配置在生产流量转移到绿环境后,多长时间内允许即时回滚到蓝环境,这个时间称为“烘焙时间”。每个服务修订版本都会保留不可变的配置,包括任务定义、负载均衡器设置和服务连接配置,以便回滚能够恢复到与之前的运行环境完全相同的环境。

 

在部署过程中,ECS 会在指定的生命周期阶段自动调用 Lambda 函数,允许对绿版本进行全面测试。新功能提供了六个部署生命周期钩子:扩展前、扩展后、生产流量转移、测试流量转移、生产流量转移后和测试流量转移后。这些钩子可以触发 AWS Lambda 函数执行自定义验证逻辑,例如合成测试、API 调用或指标查询,以检查应用程序健康状况、运行集成测试或验证性能指标,然后发出是否继续或中止部署的信号。

 

我的验证函数可以针对绿版本进行全面的测试——检查应用程序健康状况、运行集成测试或验证性能指标。

—— Donnie Prakoso

 

其他主要云服务提供商已经为不在自托管 Kubernetes 服务上运行的容器化应用程序提供了类似的蓝绿部署策略。微软 Azure通过Azure Container Apps提供蓝绿部署能力,使用容器应用修订、流量权重和修订标签来实现蓝绿部署。该平台允许用户创建蓝绿应用程序版本的实例,测试和验证新修订版本,然后相应地重定向流量。同样,为了实现蓝绿部署,Google Cloud Run 支持渐进式上线和回滚

 

其他行业反响积极,不过一位 Reddit 评论者对繁忙服务切换的原子性进行了思考

 

亚马逊云科技为 ECS 内置蓝/绿部署功能的举措很好,改变了零停机部署的游戏规则。我很好奇,在有负载的情况下,流量转移有多干净。

 

蓝绿部署能力包含在亚马逊 ECS 中,不收取额外费用。用户只需支付部署过程中使用的计算资源的费用。该功能在所有商业 AWS 区域均可用。

 

原文链接:

https://www.infoq.com/news/2025/07/aws-blue-green-ecs/

2025-07-24 10:027085

评论

发布
暂无评论
发现更多内容

盲盒开发源码搭建小程序app

进击的Java(九)

ES_her0

11月日更

盲盒开发盲盒小程序系统开发

如何用Camtasia为“微课”视频添加光标效果?

淋雨

Camtasia

社科院专家认为元宇宙是双刃剑,将带来五大巨变

CECBC

如何在浏览器 console 控制台中播放视频?

CRMEB

盲盒开发盲盒小程序开发

以用户体验为抓手,助力券商数字化转型

博睿数据

Python Qt GUI设计:多线程中信号与槽的使用(基础篇—9)

不脱发的程序猿

Python qt PyQt GUI设计 多线程中信号与槽的使用

17 K8S之容器资源需求与资源限制

穿过生命散发芬芳

k8s 11月日更

初识 .NET6

面向对象的猫

.net core .net6

怎么自学Python,大概要多久?

老表

Python 11月日更 编程入门 思路 如何解决问题

Flink CDC 2.1 正式发布,稳定性大幅提升,新增 Oracle,MongoDB 支持

Apache Flink

大数据 flink 后端 实时计算 CDC

【强势推出】专家带你玩,秒懂数据库!官方证书、万元奖品带回家!

华为云数据库小助手

GaussDB GaussDB(for openGauss) 华为云数据库

盲盒开发

.NET6 内置IOC容器

面向对象的猫

.net core .net6

为AI另辟蹊径的“小”数据

澳鹏Appen

人工智能 大数据 小数据 数据标注 训练数据

单机训练6000万类视觉分类模型,飞桨大规模分类库PLSC做到了

百度开发者中心

飞桨 视觉分类 plsc

公司应该监控员工的上网行为吗?

石云升

职场经验 11月日更

ARP欺骗与防范

喀拉峻

网络安全 安全 信息安全

盲盒app开发

支撑长安链运行,区块链算力平台是什么?

CECBC

基于Guava API实现异步通知和事件回调

Tom弹架构

Java 架构 设计模式

自定义View:多点触摸画笔的实现

Changing Lin

11月日更

盲盒h5小程序app系统开发

盲盒开发一番赏盲芒趣蛋趣小程序app开发

【体验有礼】Serverless 极速搭建 Hexo 博客

阿里巴巴中间件

阿里云 Serverless 云原生 Hexo 中间件

盲盒开发盲盒app开发

盲盒开发小程序app开发源码搭建

盲盒小程序开发盲盒源码搭建

盲盒小程序开发源码搭建

亚马逊云科技推出ECS内置蓝绿部署功能_亚马逊云科技_InfoQ精选文章