

# Amazon ECS 蓝/绿部署
<a name="deployment-type-blue-green"></a>

蓝绿部署是一种发布方法，通过运行两个相同的生产环境（称为蓝色和绿色）来减少停机时间并降低风险。借助 Amazon ECS 蓝绿部署，可以在将生产流量定向到新的服务修订版之前对其进行验证。此方法提供了一种更安全的部署更改方式，并且能够根据需要快速回滚。

## 优势
<a name="blue-green-deployment-benefits"></a>

使用蓝绿部署具有以下优势：
+ 通过切换生产环境前的生产流量测试降低风险。在将生产流量定向到新部署之前，可以使用测试流量对其进行验证。
+ 实现零停机时间部署。生产环境在整个部署过程中始终可用，从而确保持续的服务可用性。
+ 检测到问题时轻松回滚。如果绿色部署出现问题，则可以快速恢复到蓝色部署，而不会造成长时间的服务中断。
+ 受控的测试环境。绿色环境提供了独立空间，可以在全面部署之前使用真实流量模式测试新功能。
+ 可预测的部署过程。结构化方法具有明确定义的生命周期阶段，使得部署更加可靠一致。
+ 通过生命周期挂钩进行自动验证。可在部署的各个阶段实施自动测试以验证功能。

## 术语
<a name="blue-green-deployment-terms"></a>

以下是 Amazon ECS 蓝绿部署术语：
+ 烘焙时间：生产流量转移后，蓝色服务修订版和绿色服务修订版同时运行的持续时间。
+ 蓝色部署：要被替换的当前生产服务修订版。
+ 绿色部署：要部署的新服务修订版。
+ 生命周期阶段：部署操作中的一系列事件，例如“生产流量转移后”。
+ 生命周期挂钩：一个 Lambda 函数，用于在特定生命周期阶段验证部署。
+ 侦听器：一种 Elastic Load Balancing 资源，可通过所配置的协议和端口检查连接请求。为侦听器定义的规则决定了 Amazon ECS 如何将请求路由到其注册的目标。
+ 规则：与侦听器关联的 Elastic Load Balancing 资源。规则定义了请求的路由方式，由操作、条件和优先级组成。
+ 目标组：一种 Elastic Load Balancing 资源，用于将请求路由到一个或多个已注册目标（例如 EC2 实例）。创建侦听器时，您为其默认操作指定目标组。流量将转发到在侦听器规则中指定的目标组。
+ 流量转移：Amazon ECS 用于将流量从蓝色部署转移到绿色部署的过程。对于 Amazon ECS 蓝绿部署，所有流量都会同时从蓝色服务转移到绿色服务。

## 注意事项
<a name="blue-green-deployment-considerations"></a>

选择部署类型时，请考虑以下因素：
+ 资源使用量：蓝绿部署会暂时同时运行蓝色服务修订版和绿色服务修订版，这可能会使部署期间的资源使用量翻一番。
+ 部署监控：蓝绿部署会提供更详细的部署状态信息，支持您监控部署过程的每个阶段。
+ 回滚：如果检测到问题，蓝绿部署可以更轻松地回滚到先前版本，因为蓝色修订版会一直运行直到烘焙时间到期。
+ 网络负载均衡器生命周期挂钩：如果您使用网络负载均衡器进行蓝绿部署，则 TEST\$1TRAFFIC\$1SHIFT 和 PRODUCTION\$1TRAFFIC\$1SHIFT 生命周期阶段还需要额外 10 分钟。这是因为 Amazon ECS 确保可安全地转移流量。