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:

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):

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.

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: