Canary Deployment: So Easy Even Your Grandma Could Do It!
Last Friday, the unicorn startup I work for celebrated surpassing 1 million paying Australian users. Working at a company serving such a large user base requires us to exercise extreme caution with every deployment to our production environment. Of course applying regression test on staging environment and then smoke testing after the deployment on production environment is a must. Even then, sometimes bugs slip through that we didn't catch. Lately, we've started using a strategy called "Canary deployment" to help improve how we roll out updates that mostly about refactoring or lib upgrade and introduce no new feature. For new feature, we always use feature flag to enable the feature for a small group of users, which I'll write in another post. Canary deployment is straightforward. Instead of immediately giving the update to all users, we roll it out gradually in small stages. Initially, we apply the new update to just 10% of our total traffics. If any problems oc...