Hey everyone,
I'm diving into the blue-green deployment method using ECS, and I've hit a bit of a snag. Once the new (green) tasks are live, the switch from the old (blue) tasks happens instantly, but I'd actually like to conduct some testing on my new setup before the shift happens. I've set up a test listener, and while there are deployment lifecycle hooks available, I'm looking for a way to do this without using Lambda. Ideally, I want to be able to test the new version manually or through a third-party tool on a designated test domain. Is there a way to implement something like a 'deploy button' for better control over this process?
4 Answers
Just my two cents: I think adding blue-green in ECS can complicate things unnecessarily. Managing deployments through CodeDeploy alone seems more straightforward and sturdy to me.
You can adjust your deployment strategy in the config to use a canary or linear approach instead of an instant switch. If you really want a manual 'deploy button', adding an approval stage in your pipeline before the traffic shift would work perfectly. Check out the AWS docs for more details on this if you need help!
Consider using the health check settings in your task definition. This way, you can ensure that all your important tests pass before the new deployment is marked as ready to take over traffic. It helps to verify everything is functioning correctly!
You can set up a bake period in your deployment configuration. This gives you a little time to conduct any tests before fully switching over to the new tasks. It's pretty useful for avoiding any sudden transitions!
Sounds like a solid strategy!

Isn't that just a different way of handling the same thing?