A DevOps Engineer is implementing a mechanism for canary testing an application on AWS. The application was recently modified and went through security, unit, and functional testing. The application needs to be deployed on an AutoScaling group and must use a Classic Load Balancer.
Which design meets the requirement for canary testing?
A. Create a different Classic Load Balancer and Auto Scaling group for blue/green environments. Use Amazon Route 53 and create weighted A records on Classic Load Balancer.
B. Create a single Classic Load Balancer and an Auto Scaling group for blue/green environments. Use Amazon Route 53 and create A records for Classic Load Balancer IPs. Adjust traffic using A records.
C. Create a single Classic Load Balancer and an Auto Scaling group for blue/green environments. Create an Amazon CloudFront distribution with the Classic Load Balancer as the origin. Adjust traffic using CloudFront.
D. Create a different Classic Load Balancer and Auto Scaling group for blue/green environments. Create an Amazon API Gateway with a separate stage for the Classic Load Balancer. Adjust traffic by giving weights to this stage.
A
技巧:排除明显错误选项,在没有明显错误的选项中选择最合理的选项。
金丝雀测试(Canary Testing)允许在不影响大部分用户的情况下,将一小部分流量定向到新版本的应用程序,以便观察其性能和稳定性。
A. 正确。为蓝绿环境创建不同的 Classic Load Balancer 和 Auto Scaling 组。使用 Amazon Route 53 并创建加权A记录指向 Classic Load Balancer。这个选项通过创建两个不同的负载均衡器和Auto Scaling组来区分旧版本(绿色)和新版本(蓝色)的应用。使用Route 53的加权A记录,可以灵活地将一部分流量(如5%)定向到新版本,而其余流量继续流向旧版本。这完全符合金丝雀测试的需求。
B. 不正确。为蓝绿环境创建单个的 Classic Load Balancer 和 Auto Scaling 组。使用 Amazon Route 53 并创建 A 记录指向Classic Load Balancer的IP地址。通过调整A记录调整流量。这个选项的问题在于它只使用了一个负载均衡器,这意味着不能直接通过负载均衡器区分新旧版本的流量。即使你尝试通过IP地址和A记录来调整流量,这也会变得非常复杂且难以管理,不符合金丝雀测试的简单性和可控性要求。
C. 不正确。为蓝绿环境创建单个Classic Load Balancer和Auto Scaling组。创建一个Amazon CloudFront分发,以Classic Load Balancer为源。通过CloudFront调整流量。这个选项的问题是同样使用了单个负载均衡器,另外还引入了CloudFront。虽然CloudFront提供了内容分发和缓存功能,但它不是为金丝雀测试设计的流量分割工具。CloudFront分发通常用于加速静态和动态内容的分发,而不是用于在应用程序版本之间分割流量。
D. 不正确。为蓝绿环境创建不同的 Classic Load Balancer 和 Auto Scaling 组。创建一个Amazon API Gateway,为 Classic Load Balancer 设置单独的阶段。通过给这个阶段加权来调整流量。这个选项虽然使用了不同的负载均衡器和Auto Scaling组,但API Gateway通常用于构建、发布、维护、监控和保护API。它不是为金丝雀测试设计的流量管理工具,且 API Gateway 与 Classic Load Balancer 之间的集成不如Route 53那样直接和灵活。