• 86 lectures

  • 330 minutes

About the course

Kubernetes provides a few "decent" deployment strategies out of the box. However, they might not be enough. Canary is missing.

What is the canary deployments process? How should we implement it in Kubernetes? Which tools should we use? We'll try to answer those and quite a few other questions.

This course will guide you through the journey of practical implementation of canary deployments. We'll use Kubernetes because it makes many things easier than any other platform before it. We'll need service mesh because, after all, most of the canary process is controlled through networking and changes to Kubernetes definitions. We'll need a few other tools, and we might even need to write our own scripts to glue everything into a cohesive process.

The end result will be a set of instructions and a live demo of a fully operational canary deployment process that can be plugged into any continuous delivery tool. We'll define the process, and we'll choose some tools. Nevertheless, we'll do all that while making the process agnostic and applicable to any toolset you might pick.

Course curriculum

  • 1

    Introduction

  • 3

    Instaling Istio and Injecting Sidecar Proxies

    • Gist with The Commands

    • Installing Istio CLI

    • Creating Kubernetes Cluster

    • Installing Istio

    • Manual Sidecar Injection

    • Automatic Sidecar Injection

    • Cleaning Up

  • 4

    Enabling Incoming Traffic

    • Incoming Traffic

    • Gist with the commands

    • Creating Kubernetes Cluster and Installing Istio

    • Using Istio Gateway

    • Using Istio Ingress

    • References

  • 5

    Running Canary Deployments Manually

    • Manual Canaries

    • Gist with the Commands

    • Creating Kubernetes Cluster and Installing Istio

    • Deploying The First Release

    • Deploying a new release

    • Splitting Traffic

    • Rolling Forward

    • Finishing The Deployment

    • References

    • Cleaning Up

  • 6

    Using Metrics to Validate Progress

    • Validating Progress

    • Gist with the commands

    • Creating Kubernetes Cluster and Installing Istio

    • Deploying the Application

    • Query Warning

    • Querying Metrics

    • Measuring Error rate

    • Measuring Average Request Duration

    • Measuring Maximum Request Duration

    • Visualizing Metrics

    • References

    • Cleaning Up

  • 7

    Automating Canary Deployments with Flagger

    • Automating Canary Deployments

    • Gist with the commands

    • Creating Kubernetes Cluster and Installing Istio

    • Installing Flagger

    • Deploying the Application

    • Deploying Flagger Resource

    • Deploying a new Release

    • Visualizing Metrics

    • References

    • Cleaning Up

  • 8

    Automating Rollbacks of Canary Deployments

    • Automating Rollbacks

    • Gist with the commands

    • Creating Kubernetes Cluster and Installing Istio and Flagger

    • Deploying the Application

    • Rolling Back on Errors

    • Rolling Back on Maximum Request Duration

    • Rolling Forward

    • References

    • Cleaning Up

  • 9

    Integrating Canary Deployments with Continuous Delivery

    • Canary in CD

    • Gist with the commands

    • Creating Kubernetes Cluster and Installing Istio and Flagger

    • Deploying the Application

    • Exploring the Script

    • Exploring the Script

    • Observing Successful Canary Deployment

    • Observing Failed Canary Deployment

    • Observing Failed Canary Deployment

    • Cleaning Up

  • 10

    BONUS: Canary Deployments through Jenkins X

    • Canary Deployments in Jenkins X

    • Gist with the commands

    • Creating Kubernetes Cluster and Installing Istio and Flagger

    • Installing Jenkins X

    • Creating a Quickstart Project

    • Exploring Canary Resources

    • Switching to Canary Deployments

    • Deploying a new Release

    • Discussing warnings and Available Resources

    • Cleaning Up

  • 11

    Goodbye

    • Goodbye