
Each strategy offers a unique approach to manage updates.
Recreate
All existing instances are terminated at once, and new instances with the updated version are created.
- Downtime: Yes
- Use case: Non-critical applications or during initial development stages
Rolling Update
Application instances are updated one by one, ensuring high availability during the process.
- Downtime: No
- Use case: Periodic releases
Shadow
A copy of the live traffic is redirected to the new version for testing without affecting production users.
This is the most complex deployment strategy and involves establishing mock services to interact with the new version of the deployment.
- Downtime: No
- Use case: Validating new version performance and behavior in a real environment
Canary
The new version is released to a subset of users or servers for testing before broader deployment.
- Downtime: No
- Use case: Impact validation on a subset of users
Blue-Green
Two identical environments are maintained: one with the current version (blue) and the other with the updated version (green).
Traffic starts with blue, then switches to the prepared green environment for the updated version.
Downtime: No
Use case: High-stake updates
A/B Testing
Multiple versions are concurrently tested on different users to compare performance or user experience.
- Downtime: Not directly applicable
- Use case: Optimizing user experience