Canary Deployments with Analysis
An Analysis step allows you to perform various checks and tests on your application during or after deployment. This essentially allows you to implement progressive delivery while ensuring stability and performance.
Let's assume you have already configured an application for a Canary Rollout using the Canary Deployments Documentation.
- Create an AnalysisTemplate, which contains the analysis you want to carry out. In this sample, we'll query OpsVerse MetricServer to run a PromQL query
Note the configuration we are defining for the analysis. We will be making the avg_over_time query every 1m for 5 mins. Our success condition is for the result to be < 0.5, and if the analysis fails 3 times or more, Argo Rollout will fail the analysis.
- Then add an Analysis step in your Canary Rollout pipeline.
Now, as the Argo Rollout is executing and reaches the analysis step, it will execute the analysis step listed in previous step and will proceed with the rollout only if the analysis step is passed.
If the analysis fails, the rollout will be aborted, and the canary weight will be set back to 0, and the rollout will end up in a Degraded state.
Argo Rollouts supports a variety of Analysis sources that can leverage datasources ranging from proprietary tools like Datadog and Cloudwatch, to OSS tools like Graphite and Prometheus, and even customisable jobs and Web APIs. For more details, check out the Argo Rollouts Progressive Delivery & Rollouts documentation