TL;DR: Linkerd 2.0 is a composable service sidecar built with the Unix philosophy in mind. That is, it doesn’t aim to do everything and more but (or: because of this?) it’s really good at what it’s doing: instant observability into and troubleshooting of your containerized microservices.
In a microservices environment the service owner writes the code as well as increasingly is also responsible for keeping the service(s) they wrote up and running. We call that, very fittingly, service ops. To me, the service ops idea is really a kind of a subset of the appops moniker I’m subscribing to and advocating for. Now, how does that look like from a practical perspective?
The cloud native appops maturity model.
With the cloud native appops maturity model in mind you start off with ensuring that you have all your code and configuration in a repo (Git, usually, nowadays). Then you want to have all your container images in a secure, private container registry such as Quay, for example. You make sure you have a proper CI/CD pipeline in place, producing said container images in a reproducible manner. Next, you’ll likely be using Kubernetes, the de-factor industry standard for orchestrating containers. Now, once you’re starting to experience pain points when running your containerized microservices, asking yourself question like:
Linkerd 2.0 helps you at this stage of the evolution. It is built with the Unix philosophy in mind, that is, it focuses on core service mesh responsibilities: system-wide telemetry, security, and reliability; here’s what’s in the box:
The Linkerd 2.0 CLI in action, showing service-level communication stats across all namespaces.
For the rest, such as policy management, observability, etc., Linkerd 2.0 integrates super smooth with other tools such as Prometheus and Grafana. In fact, for the dashboarding it provides them embedded out of the box:
A pre-built Grafana dashboard you get for free from Linkerd 2.0.
In the following I show you a little interaction with Linkerd 2.0, after having completed the setup in less than 5 minutes. We will debug an app consisting of a couple of microservices with Linkerd 2.0, using the
linkerd command line tool:
Alrighty, where to go from here? Well, I do have some suggestions:
In conclusion, I will say that Linkerd 2.0 is a super useful tool that comes with a minimal footprint. It assists you, as a service ops, to get your work faster and more effectively done.
I am excited about the possibilities here and looking forward to see what the community behind this CNCF project will deliver on top of what you already get out of it these days. Also, I’m confident that support for things like distributed tracing, layer 7 policy enforcement, or traffic shaping (think: A/B testing, etc.) are high on the list of things yet to come and can’t wait to see Linkerd 2.0 continue to grow sustainably and healthy.
Great work folks and keep it up!