“The minimum viable product is that product which has just those features (and no more) that allows you to ship a product that resonates with early adoptors; some of whom will pay you money or give you feedback” – Eric Ries
There are a variety of techniques to deploy new updates for environments to production, so choosing the right strategy is an important decision, weighing the options in terms of the impact of change on the system and the end-users.
The following strategies need to be considered:
- Recreate: Version A is terminated then version B is rolled out.
- Ramped (also known as rolling-update or incremental): Version B is slowly rolled out and replacing version A.
- 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.
- A/B testing: Version B is released to a subset of users under specific condition.
- Shadow: Version B receives real-world traffic alongside version A and doesn’t impact the response.