Webinar Recap – Canary Releases with Gloo
Last week we featured Rick Ducott, Engineering Director here at Solo.io on a webinar about how to do a two phased canary release with Gloo API gateway. This is part of a series on how to build and operate a cloud-native platform in production. Stay tuned to our blog for more tutorials and upcoming events for more webinars and demos.
What is a Canary Release? Canary releases are an approach for safer application delivery and in this case, the delivery of new software to your end users without disrupting or interrupting their experience. Techniques like Blue/Green, Canary and Progressive Delivery allow you to reduce the risk by slowing down and better controlling how many end users have access to the new software as it is deployed to production.
Combined with the adoption of microservices architecture and Kubernetes, our deployment practices change from upgrading in place to deploying entire new services in its place. These new applications can be made up of tens or even hundreds of loosely coupled services that are releasing new versions weekly or even daily.
When operationalizing Kubernetes environments, operators can leverage the networking layer to control the impact of new releases without creating service outages, gain early insight into any issues with the new service, and gain control over the software releases to ensure successful deployments, proper application behavior and a great end user experience.
The following topics were covered in the webinar:
- What is a Canary Deployment
- Considerations in designing your Canary process
- How to architect Canary Deployments with API gateways
- Ecosystem tools for automation and observability
- Live demo
Watch the replay here:
Highlights from the Q&A
Does the Gateway-Proxy work as an ingress?
There are two ways to interpret this question. One is the ingress (lower case i), I am using Gloo gateway as the entry point for the cluster. In terms of being the Kubernetes Ingress object (capital I). I am using Gloo in the gateway mode as I wanted to specifically take advantage of some extra features that we can expose around subset routing way to destinations and specifically through Envoy. There is a mode of Gloo to act as an official Kubernetes Ingress resource if you would like to use that.
We have a recent livestream talking about Ingress vs. API gateway vs. service mesh that provides more information on this topic and here is an active discussion happening right now in the Kubernetes project towards Ingress v2, starting with the recent 1.18 release.
Does Gloo support TCP proxying?
Yes, we support TCP proxying today to services like databases, message queues and caches today. You are able to do routing today and we have plans to expand TCP support in the future. You can try the TCP tutorial here. Specifically the things I was showing today do require HTTP/L7 — like matching on the header in phase one.
Additional topics and resources mentioned in the session
- See how Gloo works with Istio for integration with Kiali
- Progressive delivery integration with Flagger by Weaveworks