When should you have 2 production environments?

Recently I explained how I do “Surgical Deployments” for high risk software releases to production.
What if you wanted that warm blanket of safety on every single deployment?
You could easily maintain a Prod B permanently and just switch traffic slowly from A to B a few percent at a time until you are confident that Prod B is ready to service all traffic.
Then scale down Prod A to a bare minimum using autoscaling policies or CodePipeline stages.
The next time you send a deployment, just do the same thing but in the opposite direction from B to A.
It sounds complicated, and it comes with additional costs, of course, but if the cost of downtime is in the hundreds of thousands of dollars, it might be worth pursuing.
If you need help with setting something like this up, shoot me a message, and I’ll try to get you pointed in the right direction.