What is shadow deployment?
This deployment consists of deployment of the new version of the software alongside the old version and then duplicate/fork the old versions requests and send them the new version without impacting the traffic in production system.
Why use shadow deployment?
- It’s a very useful method to test the production load on the new software version and then migrate completely to the new version if the thresholds are met
When to use shadow deployment?
- Whenever you have a lot of apis in a service and there is a new update where load is to be tested
- Whenever you are migrating to newer frameworks/libraries
When to avoid shadow deployment?
When there are request sensitive apis like order and payment, there should be exceptional care taken to prevent the user from making the transaction twice due to duplicate requests.
How does shadow deployment work?
Let’s understand with an image: