In the software testing phase, DevOps often needs several versions to identify bugs and make the necessary corrections. But depending on budget, requirements or simply the tools available, the deployment strategy varies. In this article, we take a closer look at the Canary DevOps release.
So what’s involved? What are the other methods? How does it work? What are the advantages and disadvantages of Canary DevOps? We answer all your questions.
What is Canary DevOps deployment?
While continuous deployment is one of the founding principles of the DevOps movement, it still requires a testing phase before the software or application is put into production.
The Canary DevOps method was developed to optimize this testing phase.
The idea is to roll out modifications progressively to a limited number of users. This makes it easier to know whether the changes implemented are producing the desired result.
With this more cautious approach, risk is reduced and production can be launched more quickly.
💡Good to know: users with access to modifications are called canaries. This name refers to the birds that used to warn miners of dangerous concentrations of toxic gases in the mines. Here, the canaries warn DevOps of bugs in the application or software.
What are the other deployment models?
Canary release is not the only deployment model available. Here are two other popular methods:
- Progressive (or Rolling) deployment: as with the Canary release, this involves staggering the changes. But here, changes are implemented on servers or instances. Conversely, with Canary DevOps deployment, new functionalities are made available directly to selected users.
- Blue/Green deployment: two hosting infrastructures are planned. One hosts the production version of the application (Blue), while the other is put in reserve (Green). The latter is used to deploy the new version and carry out various tests. When all functionalities have been validated, the update is deployed on the Blue infrastructure.
In both cases, organizations need a relatively large IT infrastructure to host both versions of an application. This is not the case with the Canary DevOps approach.
How does the Canary DevOps release work?
The Canary DevOps deployment involves staggering the changes, so that a limited number of users have access to the new version. The others will continue to use the previous version, until the changes are accepted.
In the event of errors or bugs, DevOps redirects traffic to the old version to correct any flaws. Once the changes have been validated, they are deployed to the entire environment for all users.
For this method to work, it’s vital to select the right canaries. They must be users who are both tolerant of bugs and able to detect them. Tolerance helps to reduce dissatisfaction, while the ability to detect bugs enables us to improve the product through feedback.
It is for this reason that Canary releases are often deployed internally before being made public. But it is also possible to create opt-in user groups, who wish to receive updates before anyone else.
Whatever their function, canaries are not always aware that they are being used as an early warning signal.
What are the benefits of Canary deployment for DevOps?
By making some of the changes available to a small sample of users, it’s easier to get feedback. It is this feedback that enables continuous improvement of the software or application.
Although some bugs are identified during the test phase, the number of users experiencing them is small. This helps maintain an excellent level of satisfaction.
What’s more, modifications are more easily reversible than if they were distributed to a large proportion of users.
In all cases, deployment risk is greatly reduced thanks to Canary Devops.
Lack of dedicated infrastructure
Unlike the Blue/Green and Progressive deployment methods, there is no need for two infrastructures (one for testing and another for full deployment). This is because Canary testing is not carried out on another server or instance, but with a specific group of users.
As such, Canary DevOps deployment is particularly useful for companies with limited financial resources.
What are the drawbacks of Canary Release?
Despite all the benefits of Canary for a DevOps deployment, it’s important to be aware of the method’s weaknesses. Indeed, even if restricted users are able to provide feedback, bugs sometimes slip through the cracks. So it’s vital to double-check for any malfunctions before releasing the entire environment to production.
- The Canary DevOps method enables new features to be rolled out progressively to a limited number of users.
- Unlike the Rolling and Blue/Green deployment models, Canary release requires no additional infrastructure.
- Canary release enables organizations to reduce risk, accelerate time-to-production, and all at a lower cost.