Canary Deployments To Kubernetes Using Istio and Friends
What you'll learn
- Canary deployments
- Using service mesh to define and run canary deployments
- Using Istio to define canary deployments
- Using metrics in Prometheus to decide whether to roll forward or roll back
- Automating canary deployments with Flagger
- Creating a script for canary deployments running in continuous delivery tools
Requirements
- A Kubernetes cluster and a few CLIs. Detailed requirements are provided inside the course and available as a free preview.
Description
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.
Who this course is for:
- Engineers interested in defining and running canaries as a way to have more reliable deployments with zero-downtime
Course content
- Preview01:55
- Preview04:22
- 03:05Deploying The First Release
- 02:13Using "Big Bang" Deployments
- 02:11Using Rolling Updates
- Preview05:06
- 03:20Discussing Challenges With Microservices
- Preview05:22
- 03:01Why Are We Going To Use Istio?
Instructors
I am a Principal Software Delivery Strategist and Developer Advocate at CloudBees, a member of the Google Developer Experts and Docker Captains groups, and a published author.
My big passions are DevOps, Microservices, Continuous Integration, Delivery and Deployment (CI/CD), and Test-Driven Development (TDD).
I often speak at community gatherings and conferences.
I published "The DevOps Toolkit Series" and "Test-Driven Java Development".
My random thoughts and tutorials can be found in his blog TechnologyConversations.
I started out as a roadie for 6 years in the late 80s. During that time, I developed teleprompter software on a 8088 luggable using Borland's Turbo Pascal, as well as a lot of custom development using PICK.
If you've never heard of these, that's ok. Suffice it to say, I'm old(er).
Since that time, I've worked for a few smaller consulting firms, open source companies as well as running my own successful consultancy for a number of years.
Today, I'm working as a services consultant for CloudBees, helping people with installations, troubleshooting and training on our products. I'm also the co-host of the DevOps Paradox podcast with Viktor Farcic.