Istio + Helm + Canary
With Codefresh
Dan Garfield
Chief Evangelist, Codefresh
Customers
Over 3.5 million images built
@TodayWasAwesome
Canary ● Deploy a new version of your
app
● Give a percentage of traffic
the new version
● If it works, give it 100%
Prod Version Canary Version
Canary
Start with the prod version of your app.
Prod Version All users get prod
Canary
Deploy a Canary version.
Prod Version All users get prod Canary Version
Canary
Mix traffic
Prod Version A portion of users
receive canary
Canary Version
Canary
Monitor canary, if everything looks good, send more traffic
Prod Version A portion of users
receive canary
Canary Version
Canary
Complete rollout, now the canary version, becomes the prod version
Prod Version Send all traffic to
canary version
Canary Version
Canary
We can remove the old version, or keep it for a hot swap
Send all traffic to
canary version
NEW Prod
version
The Goal:
Build an assembly line
HELM
The package manager for
Kubernetes
Go
Node
Postgresql
.NET
Istio is super flexible
You can canary a pod
You can canary a service
You can canary an entire Helm Chart
Go
Node
Postgresql
.NET
You can canary CLUSTERS!
There are a million ways to shoot a
scene but really there maybe two,
maybe. And one is wrong.
Kubernetes
Pipeline
Leveraging Helm
How do you marry in Helm?
Release 1
Release 2
Release 3
Helm Releases
Release 1
Release 2
Release 3
Helm Releases
Regular production release
Canary release
Regular production release
Helm and Istio don’t talk.
Canary pipeline
Commit Build
images/Chart
Istio Update,
increase traffic
Deploy new
version of chart
Complete update
Health check
DEMO
TIME!
Color Coded
https://github.com/todaywasa
wesome/color-coded
Go
Go
Create a free account
or Schedule a 1:1
at: Codefresh.io
Questions?

Istio + Helm + Canary Webinar

Editor's Notes