Six Strategies for Application Deployment
Recreate
- Version A is terminated then version B is rolled out.
- High down time
Ramped (also known as rolling-update or incremental) - Version B is slowly rolled out and replacing version A.
- Both new and old version exist during deployment, need to support multiple version at the same time
Blue/Green - Version B is released alongside version A, then the traffic is switched to version B.
Canary - Version B is released to a subset of users, then proceed to a full rollout.
- Usually used when low confidence on new release
A/B testing - Version B is released to a subset of users under specific condition.
- Requires intelligent load balancer
- Difficult to troubleshoot erros for a given session
Shadow - Version B receives real-world traffic alongside version A and doesn’t impact the response
- Can test system load
- Complex to set up, need to mock service