Amazon ECS 蓝/绿部署
蓝绿部署是一种发布方法,通过运行两个相同的生产环境(称为蓝色和绿色)来减少停机时间并降低风险。借助 Amazon ECS 蓝绿部署,可以在将生产流量定向到新的服务修订之前对其进行验证。此方法提供了一种更安全的部署更改方式,并且能够根据需要快速回滚。
优势
使用蓝绿部署具有以下优势:
-
通过切换生产环境前的生产流量测试降低风险。在将生产流量定向到新部署之前,可以使用测试流量对其进行验证。
-
实现零停机时间部署。生产环境在整个部署过程中始终可用,从而确保持续的服务可用性。
-
检测到问题时轻松回滚。如果绿色部署出现问题,则可以快速恢复到蓝色部署,而不会造成长时间的服务中断。
-
受控的测试环境。绿色环境提供了独立空间,可以在全面部署之前使用真实流量模式测试新功能。
-
可预测的部署过程。结构化方法具有明确定义的生命周期阶段,使得部署更加可靠一致。
-
通过生命周期挂钩进行自动验证。可在部署的各个阶段实施自动测试以验证功能。
术语
以下是 Amazon ECS 蓝绿部署术语:
-
烘焙时间:生产流量转移后,蓝色服务修订和绿色服务修订同时运行的持续时间。
-
蓝色部署:要被替换的当前生产服务修订。
-
绿色部署:要部署的新服务修订。
-
生命周期阶段:部署操作中的一系列事件,例如“生产流量转移后”。
-
生命周期挂钩:一个 Lambda 函数,用于在特定生命周期阶段验证部署。
-
侦听器:一种 Elastic Load Balancing 资源,可通过所配置的协议和端口检查连接请求。为侦听器定义的规则决定了 Amazon ECS 如何将请求路由到其注册的目标。
-
规则:与侦听器关联的 Elastic Load Balancing 资源。规则定义了请求的路由方式,由操作、条件和优先级组成。
-
目标组:一种 Elastic Load Balancing 资源,用于将请求路由到一个或多个已注册目标(例如 EC2 实例)。创建侦听器时,您为其默认操作指定目标组。流量将转发到在侦听器规则中指定的目标组。
-
流量转移:Amazon ECS 用于将流量从蓝色部署转移到绿色部署的过程。对于 Amazon ECS 蓝绿部署,所有流量都会同时从蓝色服务转移到绿色服务。
注意事项
选择部署类型时,请考虑以下因素:
-
资源使用量:蓝绿部署会暂时同时运行蓝色服务修订和绿色服务修订,这可能会使部署期间的资源使用量翻一番。
-
部署监控:蓝绿部署会提供更详细的部署状态信息,支持您监控部署过程的每个阶段。
-
回滚:如果检测到问题,蓝绿部署可以更轻松地回滚到先前版本,因为蓝色修订版会一直运行直到烘焙时间到期。