Is there a common name for this deployment strategy which is to avoid deploying major updates across all the customers straight away but rather limit the initial number to see their feedback, find any bugs that slipped through testing thus minimizing the impact (and avoiding overwhelming customer service with support tickets), and only then gradually roll the update out for all?
1 Answer
Canary release/deployment is the term you are looking for. Usually in a canary deployment, a small percentage (10% for example) of your infrastructure is updated with the latest revisions of your codebase. That percentage is then tested with various automated and manual testing methods. Once testing is complete, the remaining 90% is updated with the same version. If testing fails, then the initial 10% is either rolled back or re-provisioned with the original (pre-updated) version.
It should be noted, that a strategy like this requires that your application have some type of feature flagging or backwards compatibility in place to allow multiple versions to be running simultaneously. Otherwise, when a rollback occurs, a portion of your infra, users, etc. may be left in a broken state.