Workshop: Introduction to Service Meshes with Istio
Service Meshes are fast becoming ubiquitous in cloud-native infrastructure, and are applicable to traditional environments as well. They involve running a small reverse proxy alongside each daemon, which does traffic management on its behalf - in this session we’ll be using the most popular mesh, Istio, based on the modern Envoy proxy.
To the platform engineer, meshes provide a more advanced and configurable network, with built-in security and unparalleled observability. To the software engineer, they offer features for service discovery, resiliency, and debugability. But Service Meshes can be daunting; difficult to understand and hard to use.
This practical workshop will kick-start your Service Mesh journey. We’ll use a managed EKS cluster and a one-click Istio add-on from the marketplace, getting us started in no time. We’ll deploy some microservices to explore Istio’s features, like automatic timeouts and retries. We’ll also look at the powerful observability features, automatic service-to-service mutual TLS, and more!
In between the exercises I’ll present some theory about how Service Meshes work, so you have the full picture of what’s going on under the hood. Armed with this knowledge and your practical experience from the day, you’ll be well-equipped to continue your Service Mesh journey.
Knowledge and experience that will let you decide whether a Service Mesh, and Istio in particular, is right for your environment
Hands-on experience with Istio’s key features, which you can explore further and demo to others
An understanding of how a Service Mesh works with your microservices, and how to configure both to compliment each other
Please install the following software prior to the workshop:
* Install homebrew if you're not already using it
* Install the official Kubernetes CLI client with `brew install kubernetes-cli`
* Install Helm (v3) with `brew install kubernetes-helm`. _Helm_ is the defacto Kubernetes package manager, and we'll use it to install various packages into our Kubernetes cluster
If you're on linux I assume you know what you're doing ;)
All of this stuff should have packages in your distro's package manager, or you can follow the software's own instructions.
* kubectl (Ubuntu: `snap install kubectl --classic`, Arch: `yay -S kubectl`)
* Helm (v3) (Ubuntu: `snap install helm --classic`, Arch: `yay -S helm`)
A previous attendee found success with:
* Install Chocolatey
* `choco install kubernetes-cli`
* `choco install kubernetes-helm`
* Install bash for Windows (Settings -> Update & security -> For Developers -> Use developer features -> setup the environment to install Bash) and use that for all the exercises. WSL might also be an option these days.