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?
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:
- How to identify which of the microservices behaves badly? Both HTTP and gRPC services?
- Which of the service in a call chain is the slowest? What errors do I see on the wire?
- How do I troubleshoot or optimize a certain request path across a number of microservices?
Meet Linkerd 2.0
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:
- A self-contained so called service sidecar design, augmenting services.
- A zero-config installation process and no need to change your app code.
- Out of the box, preconfigured Grafana dashboards as well as integrated monitoring via Prometheus.
- Automatic TLS management incl. certificate generation & distribution.
- A usable Web UI and powerful command line interface (CLI):
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 demo says more than a 1000 words …
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:
Next steps …
Alrighty, where to go from here? Well, I do have some suggestions:
- You might want to join in the discussion around Linkerd 2.0, today. Leave feedback, suggest a feature or ask for help either in the forum or join the Linkerd Slack community (on the #linkerd2 channel).
- Try out Linkerd 2.0 via a Katacoda scenario I’ve put together, it’s accessible via your favourite browser and you’ll learn how to install and use Linkerd 2.0 in less than 10 minutes end to end.
- In my Velocity NYC talk beginning of October, I will use Linkerd 2.0 in one of the hands-on parts. Say Hi if you’re around ;)
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!