This course has everything you need to take advantage of the powerful Linkerd service mesh. You will learn the core concepts needed to understand how Linkerd integrates with your application. Then, you'll learn how and why to enable the advanced features of Linkerd. For each section, you'll get hands-on exercises to reinforce your new skills.
Learn the Service Mesh
Linkerd is a service mesh, which means that it allows you to manage and configure the network traffic in your application. Linkerd is a Cloud-Native tool that works inside a Kubernetes environment to create the service mesh.
Observability
A major advantage of Linkerd is the observability feature. Linkerd provides the golden signals (success rate, latency, traffic) in a convenient dashboard or on the command line. In large microservices environments with lots of dependencies, it can be hard to find the root cause of errors in your service. Linkerd helps you to identify root cause by giving you success rates for all resources with linkerd enabled.
Linkerd also allows you to configure traffic for the applications in your service mesh. You can add retries and timeouts using linkerd. These linkerd features allow you to increase the reliability of your system. If an incoming request results in an intermittent error, Linkerd's retries can automatically retry the request so that your user just sees a successful response.
Rust-based for speed and security
Linkerd's sidecar proxy is written in the Rust programming language for a couple reasons.
First, Rust makes Linkerd *fast*. Linkerd sidecar proxies are faster than other service meshes in the market. This means that Linkerd is cheaper to run and a better experience for your users than other meshes.
Second, Rust makes Linkerd memory-efficient. When you are paying your cloud provider per GB of RAM used, it's best to go with the most efficient service mesh.
Third, Linkerd sidecar proxies are not vulnerable to C-style memory vulnerabilities due to the safety guarantees of Rust. This means fewer work injects to update the proxy due to memory security issues such as Heartbleed.
Easy Deployment and Updates
To add Linkerd to your application, you add a single Kubernetes resource annotation. If Linkerd is running on your cluster, it will automatically add the required configuration data so that your application is enabled for linkerd.
Linkerd runs as a sidecar along your application. That means that Linkerd works with any application programming language. The sideecar pattern also means that you can update linkerd without impacting your main application container processes.
Advanced Deployment Strategies
Linkerd supports a Kubernetes Custom Resource Definition type called Traffic Splits that enables advanced functionality for distributing traffic to different backends. You can use it to implement canary deployments such as the Blue-Green deployment with Linkerd. You can also perform advanced techniques such as fault injection using the Linkerd TrafficSplit resource.