In the latest edition of Tech-Friday (our awesome monthly hackathon!) at Devoteam we decided to explore and set up a working service mesh with Linkerd! It was great collaborating with my peers and exploring Linkerd to get a much better understanding of service meshes and how they can be applied in a production environment and the benefits it would bring. In this blog I am going to go over our experience with service meshes and Linkerd and what it was like to set it up on minikube!
Service Meshes and Linkerd
Without going into great detail, a “service mesh” is a dedicated infrastructure layer that makes service-to-service communication reliable, fast and safe. It is not a “mesh of services” but rather a mesh of API proxies that services call locally.
The proxies then relay each call to their intended target service, thus abstracting away all aspects related to the network. By intercepting network communication within the application, service meshes are able to extract metrics (“telemetry”), apply service-to-service policies, and encrypt the exchange.
We decided to get together at Devoteam for a cool little hackathon and explore service meshes and check out the benefits and reasons to use them in an ever-increasing and rapidly growing containerized world, we decided we would take a look into Linkerd, Linkerd is a tool for adding observability, security, and reliability features to “cloud-native” applications by transparently inserting this functionality at the platform layer rather than the application layer.
The service mesh is rapidly becoming a standard part of the cloud-native stack, especially for Kubernetes adopters.
We set up our Minikube clusters and were ready to go. Linkerd has a really easy setup, their documentation is really straightforward, actually for some of us it took longer to set up Minikube! Once we all had a working Minikube cluster set up we began installing Linkerd. We found that without the Viz dashboard addon, Linkerd has little to actually “see”, its installed, its running, it’s doing its thing in the background and attaching its sidecars onto the containers which is great. But we want to see what’s going on visually in a dashboard, and that’s where Viz comes in, once you enable it you get a really cool VIZual (get it?) representation of what Linkerd is doing which is awesome, we can see all the containers, we get some super cool logging/monitoring dashboards (which is built-in) with Grafana, we can also check traffic coming in and out of the pods and also debug errors inside the containers.
We spent the rest of the afternoon and hackathon tackling the “Tasks” section of Linkerd which included Automated Canary Releases, Debugging gRPC applications with request tracing, and Using the Debug Sidecar.
Exploring further… beyond the concepts and buzzwords
Tech-Fridays (or Hackathons) at Devoteam are intended to look beyond the buzzwords and dive into the technology, explore it, and brainstorm its real-world implications. It is also an awesome way for us to collaborate with our expert peers and learn something new together in a very hands-on way. We will be going deeper into the cloud-native space in the course of this year, so watch this space for more!