DEV Community

technonotes-hacker
technonotes-hacker

Posted on

Promotion - Canary Deployment

  • a small, yellow songbird.
  • a small yellow bird that sings and is often kept as a pet.

What is Canary Deployment ?

  • Its a technique for rolling out new features or changes to a small traffic or instance before releasing the update to the entire system.
  • A small percentage of traffic is then routed to the new deployment , while the majority of the traffic continues to be served by the original deployment.
  • If the issues are detected during the canary deployment , it can be quickly rolled back to the original deployment.

Adavantage

  • Its a valuable tool for minimizing risk and ensuring high availability in complex distributed systems.

Target Deployment

  • Microservice

Process Flow

  • Plan and Create
  • Analyze
  • Roll Out

Implementation Plan

Deployment

  • Deployment team will take care via IR / CR accordyingly.

Canary Deployment will not be carried out for ?

  • DB changes
  • Low traffic Application
  • Request and Response changes
  • If the application as complex dependencies which one microservice will affect another in unexpected way then its difficult to isolate the issues.

How failures will be identified in canary deployment

  • POD wise logs will be maintained where the transaction failures can be verified.

Reference

Deploy a Release Using a Canary Deployment | Kubernetes

This tutorial walks you through deploying a canary release in Kubernetes. A canary deployment allows you to safely test a new application version with a small portion of production traffic before rolling it out completely. This approach helps minimize risk and enables rapid feedback from real users. For an overview of canary deployments, see Canary deployments in the Managing Workloads concept page. Objectives Deploy a stable version of an application Deploy a canary version alongside the stable version Route traffic to both versions using a Service Monitor the canary deployment Complete the rollout by scaling the canary and removing the stable version Before you beginYou need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. It is recommended to run this tutorial on a cluster with at least two nodes that are not acting as control plane hosts. If you do not already have a cluster, you can create one by using minikube or you can use one of these Kubernetes playgrounds:

favicon kubernetes.io

Top comments (0)