►
From YouTube: Optimal Canary Deployments using Istio and how it scores over Spring Cloud and Kubernetes
Description
#IstioCon2021
Presented at IstioCon 2021 by Archna Gupta.
This talk will walk through canary deployments process and how to achieve the same using Kubernetes service orchestration or Spring Cloud Gateway focusing on the limitations of these approaches and how Istio overcomes these limitations. Spring cloud Gateway or Kubernetes LoadBalancer service or Ingress controllers only supports the edge service routing and not Internal routing from edge service to another service in cluster. This is where Istio virtual services and destination rules come to rescue – this talk with elaborate further on how Istio provides an optimal solution for canary releases in this scenario.
A
Www.Myapplication.Com,
if
you
want
to
roll
out
a
canary
release
of
your
service
democanary,
this
is
what
you
will
do.
You
will
create
an
identical
duplicate
deployment
of
demo
canary
service
using
same
labels
as
the
original
deployment
of
this
service
and
add
some
additional
labels
to
differentiate
between
the
deployments.
A
A
A
After
ascertaining
that
the
canary
release
is
fine,
we
can
increase
the
traffic
percentage
to
the
new
deployment
gradually
until
we
move
the
entire
traffic
from
version
1
to
version
2..
Now
remember.
We
can't
use
auto
scaling
anymore,
because
it's
now
being
done
by
two
independent,
auto
scalers
one
for
each
deployment,
whether
we
use
kubernetes
or
any
other
container
management
platform
like
docker,
mesos
or
anything
all
of
them,
use
instance
scaling
to
manage
traffic.
A
A
A
A
A
What
we
can
do
is
to
have
two
identical
deployments
like
blue
green
deployments,
and
we
need
to
use
spring
cloud
gateway
to
split
the
user's
request
to
a
specific
application
based
on
headers
sent
by
the
client.
So
all
the
non-admin
users
are
routed
to
the
green
deployment
and
all
the
admin
users
are
routed
to
the
blue
deployment.
A
Here,
each
deployment
has
its
own
eureka
server
and
each
version
of
service
is
deployed
on
different
eureka
servers,
so
version
1
demo
canary,
will
call
version
1.
My
data
service
and
version
2
demo
gallery
will
call
version
2.
My
data
service
imagine
an
application
with
200
services
and
we
want
to
roll
out
canary
release
for
only
four
to
five
services.