Which solution will meet these requirements with MINIMAL changes to the application?
Introduce changes as a separate environment parallel to the existing one. Configure API Gateway to use a canary release deployment to send a small subset of user traffic to the new environment.
Introduce changes as a separate environment parallel to the existing one. Update the application’s DNS alias records to point to the new environment.
Introduce changes as a separate target group behind the existing Application Load Balancer. Configure API Gateway to route user traffic to the new target group in steps.
Introduce changes as a separate target group behind the existing Application Load Balancer. Configure API Gateway to route all traffic to the Application Load Balancer, which then sends the traffic to the new target group.
Explanations:
Using a canary release deployment allows a small percentage of user traffic to be directed to the new environment. This minimizes user disruptions and provides a safe method to test the new version while allowing for quick rollback if issues arise. This approach requires minimal changes to the application, as the existing environment remains intact and only a portion of the traffic is routed to the new environment.
Updating DNS alias records to point to the new environment involves significant changes, as it requires waiting for DNS propagation and could lead to downtime or user experience disruptions. This method does not provide an easy rollback option, as it lacks the ability to gradually shift traffic or monitor the new version’s performance.
Introducing a separate target group behind the existing Application Load Balancer and routing traffic in steps could be complex to implement. API Gateway cannot directly manage traffic distribution between target groups; this setup requires more detailed configuration and may not effectively support a straightforward rollback strategy.
While introducing a separate target group is a valid strategy, routing all traffic to the Application Load Balancer without a gradual approach does not minimize disruption. This could lead to all users experiencing issues simultaneously if there are problems with the new target group. Additionally, it lacks a structured rollback mechanism if the new version fails.