A Short Introduction to Progressive Delivery
This lesson gives an introduction to progressive delivery and its encompassing methodologies. Canary deployments are also discussed.
What is progressive delivery? #
Progressive delivery is a term that includes a group of deployment strategies that try to avoid the pitfalls of the all-or-nothing approach. New versions being deployed do not replace existing versions but run in parallel for some time while receiving live production traffic. They are evaluated in terms of correctness and performance before the rollout is considered successful.
Progressive Delivery encompasses methodologies such as:
- rolling updates
- blue-green
- canary deployments
We already used rolling updates for most of our deployments so you should be familiar with at least one flavor of progressive delivery. What is common to all of them is that monitoring and metrics are used to evaluate whether a new version is “safe” or needs to be rolled back. That’s the part that our deployments were missing so far or, at least, did not do very well. Even though we did add tests that run during and after deployments to staging and production environments, they were not communicating findings to the deployment process.
We did manage to have a system that can decide whether the deployment was successful or not, but we need more. We need a system that will run validations during the deployment process and let it decide whether to proceed, to halt, or to roll back. We should be able to roll out a release to a fraction of users, evaluate whether it works well and whether the users are finding it useful. If everything goes well, we should be able to continue extending the percentage of users affected by the new release. All in all, we should be able to roll out gradually, let’s say ten percent at a time, run some tests and evaluate results, and, depending on the outcome, choose whether to proceed or to roll back.
Get hands-on with 1400+ tech skills courses.