Bird
Raised Fist0
Microservicessystem_design~10 mins

Linkerd overview in Microservices - Scalability & System Analysis

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Scalability Analysis - Linkerd overview
Growth Table: Linkerd in Microservices
Users / Services100 Users10K Users1M Users100M Users
Microservices Count5-10 services50-100 services500-1000 services10,000+ services
Linkerd Proxy Instances5-10 proxies (one per service)50-100 proxies500-1000 proxies10,000+ proxies
Request Rate~1,000 RPS~100,000 RPS~1,000,000 RPS~100,000,000 RPS
Control Plane LoadLow, single control planeModerate, may need HA control planeHigh, control plane scaling neededVery high, multi-cluster control planes
Observability DataSmall volume logs/metricsLarge volume, needs aggregationVery large, requires scalable storageMassive, needs tiered storage and sampling
First Bottleneck

The first bottleneck is the Linkerd control plane. It manages service discovery, configuration, and telemetry. As the number of services and request rates grow, the control plane can become overwhelmed processing updates and metrics.

Also, the network bandwidth between proxies and control plane can saturate due to telemetry data volume.

Scaling Solutions
  • Horizontal scaling: Run multiple replicas of the Linkerd control plane to distribute load.
  • Proxy sidecar optimization: Use lightweight proxies to reduce CPU and memory usage per service.
  • Telemetry sampling: Reduce data volume by sampling metrics and traces before sending to control plane.
  • Multi-cluster setup: Split services across clusters with separate control planes to limit scope.
  • Use caching: Cache service discovery data locally in proxies to reduce control plane queries.
  • Network optimization: Compress telemetry data and use efficient protocols to reduce bandwidth.
Back-of-Envelope Cost Analysis
  • At 1,000 RPS, each proxy handles ~100-200 RPS; CPU usage is low (~5-10%).
  • At 1M RPS, control plane must handle millions of telemetry events per second; requires multiple replicas with 4+ CPU cores each.
  • Telemetry data can reach several GB/s; network bandwidth must be at least 10 Gbps in large clusters.
  • Storage for metrics and logs grows rapidly; scalable time-series databases or cloud storage needed.
Interview Tip

Start by explaining Linkerd's role as a service mesh proxy and control plane. Then discuss how it scales with increasing services and traffic. Identify the control plane as the first bottleneck and propose concrete solutions like horizontal scaling and telemetry sampling. Use numbers to show understanding of limits and costs.

Self Check Question

Your Linkerd control plane handles 1,000 QPS of telemetry data. Traffic grows 10x. What do you do first?

Answer: Horizontally scale the control plane by adding replicas to distribute the load and reduce latency. Also, implement telemetry sampling to reduce data volume.

Key Result
Linkerd scales well with microservices by running lightweight proxies per service, but the control plane becomes the first bottleneck as services and traffic grow. Horizontal scaling of the control plane and telemetry sampling are key to handle large scale.

Practice

(1/5)
1. What is the primary purpose of Linkerd in a microservices architecture?
easy
A. To write business logic for microservices
B. To replace the database layer in microservices
C. To help microservices communicate securely and reliably
D. To serve as a frontend framework for microservices

Solution

  1. Step 1: Understand Linkerd's role

    Linkerd is a service mesh designed to manage communication between microservices.
  2. Step 2: Identify its main function

    It ensures secure and reliable communication without changing service code.
  3. Final Answer:

    To help microservices communicate securely and reliably -> Option C
  4. Quick Check:

    Linkerd = Secure, reliable microservice communication [OK]
Hint: Linkerd manages communication, not business logic or UI [OK]
Common Mistakes:
  • Confusing Linkerd with database or frontend tools
  • Thinking Linkerd writes application code
  • Assuming Linkerd replaces microservices
2. Which of the following commands is used to check the health of Linkerd after installation?
easy
A. linkerd check
B. linkerd install
C. linkerd monitor
D. linkerd deploy

Solution

  1. Step 1: Recall Linkerd CLI commands

    Linkerd provides commands like install, check, and monitor for managing the service mesh.
  2. Step 2: Identify the health check command

    The linkerd check command verifies if Linkerd is installed and running correctly.
  3. Final Answer:

    linkerd check -> Option A
  4. Quick Check:

    Health check = linkerd check [OK]
Hint: Use 'linkerd check' to verify installation health [OK]
Common Mistakes:
  • Using 'linkerd install' to check health
  • Confusing 'linkerd monitor' with health check
  • Assuming 'linkerd deploy' is a valid command
3. Given the following snippet, what will linkerd check report if Linkerd proxies are not injected into the services?
kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
service-a-12345           1/1     Running   0          10m
service-b-67890           1/1     Running   0          10m
medium
A. Info: Services are running but no Linkerd installed
B. All checks pass, Linkerd is fully operational
C. Error: Kubernetes cluster not reachable
D. Warning: No proxies detected, Linkerd not fully enabled

Solution

  1. Step 1: Understand proxy injection role

    Linkerd requires proxies injected into pods to manage traffic and security.
  2. Step 2: Analyze pod readiness and proxy presence

    Pods show 1/1 ready, but no proxy sidecar means Linkerd features are not active.
  3. Final Answer:

    Warning: No proxies detected, Linkerd not fully enabled -> Option D
  4. Quick Check:

    No proxies = Warning from linkerd check [OK]
Hint: No proxies means Linkerd features inactive, expect warnings [OK]
Common Mistakes:
  • Assuming pods ready means Linkerd is fully working
  • Confusing cluster reachability errors with proxy injection
  • Thinking Linkerd works without proxies
4. You deployed Linkerd but notice that traffic is not being routed through the proxies. Which of the following is the most likely cause?
medium
A. Proxies were not injected into the service pods
B. The services are not exposing any ports
C. The Kubernetes cluster is down
D. The Linkerd control plane is not installed

Solution

  1. Step 1: Check Linkerd traffic routing requirements

    Traffic routing requires proxies injected into pods to intercept and manage requests.
  2. Step 2: Identify common deployment mistakes

    If proxies are missing, traffic bypasses Linkerd, causing routing issues.
  3. Final Answer:

    Proxies were not injected into the service pods -> Option A
  4. Quick Check:

    Missing proxies = traffic not routed [OK]
Hint: Missing proxies cause traffic routing failure [OK]
Common Mistakes:
  • Assuming control plane absence causes routing issues
  • Blaming Kubernetes cluster status without checking proxies
  • Ignoring service port exposure as a cause
5. You want to add observability to your microservices using Linkerd. Which combination of features does Linkerd provide to achieve this without changing your service code?
hard
A. Database management, caching, and load balancing
B. Traffic routing, security, and built-in monitoring dashboards
C. Frontend UI components, API gateways, and authentication
D. Code instrumentation, manual tracing, and custom logging

Solution

  1. Step 1: Identify Linkerd's observability features

    Linkerd provides traffic routing, security, and monitoring dashboards automatically via proxies.
  2. Step 2: Exclude unrelated features

    Database, frontend UI, and manual code changes are outside Linkerd's scope.
  3. Final Answer:

    Traffic routing, security, and built-in monitoring dashboards -> Option B
  4. Quick Check:

    Linkerd = routing + security + monitoring [OK]
Hint: Linkerd adds observability without code changes [OK]
Common Mistakes:
  • Confusing Linkerd with database or frontend tools
  • Thinking manual code changes are needed for observability
  • Mixing Linkerd with unrelated infrastructure components