考虑到这种情况:
- 代表蓝色集群的 Auto-Scaling Group (ASG) 正在负载均衡器后面运行 Web 应用程序
- 另一个代表绿色集群的 ASG 部署了新版本的 Web 应用程序,连接到同一个负载均衡器。但是因为这个绿色集群还没有准备好,它会返回 HTTP 503(暂时不可用)。由于 503 返回码,负载均衡器将继续将所有流量路由到蓝色环境并忽略绿色环境。
- 绿色集群将自动将数据迁移到新版本(由应用程序代码本身完成)。
- 迁移完成后,绿色集群会告诉蓝色集群返回 503 并开始返回 HTTP 200。
- 负载均衡器现在应该开始将流量路由到绿色集群。
是否可以将 AWS 设置为在同一个负载均衡器后面有两个 ASG(代表蓝色和绿色),以便在 ASG 上运行的应用程序可以使用 HTTP 代码来控制哪个集群(蓝色或绿色)正在接收流量,但是没有 ASG 杀戮机器?
我知道 CodeDeploy 可以在这里提供帮助,但我正在寻找一种与供应商无关的解决方案,该解决方案适用于 AWS、Azure 和任何传统(本地)负载均衡器。