kubernetes-patterns-canary-deployments

Contents

Roadmap info from roadmap website

Canary Deployments

Canary Deployments is a technique used in Kubernetes to gradually roll out new versions of an application by directing a small percentage of users or traffic to the new version while the majority continue using the old version. This approach allows for testing the new version under real-world conditions before fully committing to the update. In Kubernetes, canary deployments can be implemented using tools such as Istio, Linkerd, or Nginx, or by using built-in features like deployment strategies and traffic routing.

Resources

Canary Deployments

flowchart TD
    subgraph Canary Deployment
        direction TB
        A[Users] -->|Majority of Traffic| B[Old Version]
        A -->|Small Traffic Percentage| C[New Version Canary]

        B --> D[(Load Balancer)]
        C --> D

        subgraph Steps
            C -->|Monitor New Version| D[(Load Balancer)]
            D -->|Full Rollout or Revert| B
            D -->|Full Rollout to New Version| C
        end
    end

Key Elements

  • Users: Majority of users are still directed to the old version, while a small percentage of traffic is routed to the canary (new) version.
  • Old Version: The current production version receiving the bulk of traffic.
  • New Version (Canary): Receives a small portion of traffic to validate the new deployment under real-world conditions.
  • Load Balancer: Balances the traffic between old and canary versions.
  • Monitoring: Based on the performance of the canary, either a full rollout to the new version or a rollback to the old version occurs.

This method ensures a gradual rollout and limits the impact of potential issues with the new version.

#roadmap #kubernetes #kubernetes-patterns #ready #online