Home/Glossary/Service Mesh

Service Mesh

A dedicated infrastructure layer that handles service-to-service communication, providing observability, traffic management, and security without changing application code.

Cloud Infrastructure

A service mesh abstracts network complexity from applications by deploying sidecar proxies alongside each service instance, centralizing cross-cutting concerns like encryption, load balancing, and telemetry.

Why it matters

  • Enables consistent security policies (mTLS, authorization) across all services automatically.
  • Provides deep observability with distributed tracing, metrics, and access logs.
  • Simplifies traffic management with canary deployments, circuit breakers, and retries.
  • Decouples infrastructure concerns from application logic, reducing developer burden.

Key concepts

  • Sidecar Proxy: A lightweight proxy (typically Envoy) deployed alongside each service instance.
  • Data Plane: The collection of sidecar proxies handling actual service traffic.
  • Control Plane: Centralized management components that configure the data plane.
  • Service Discovery: Automatic detection of service instances and their endpoints.
  • Traffic Policies: Rules for routing, load balancing, timeouts, and retries.

Core capabilities

  • Security: Automatic mTLS encryption, identity-based access control, certificate management.
  • Observability: Distributed tracing, golden signal metrics, access logging without code changes.
  • Traffic Management: Canary releases, A/B testing, traffic mirroring, fault injection.
  • Resilience: Circuit breakers, rate limiting, automatic retries with exponential backoff.

Popular service mesh options

  • Istio: Feature-rich mesh with extensive policy capabilities; can be complex to operate.
  • Linkerd: Lightweight, Rust-based mesh focused on simplicity and performance.
  • Consul Connect: HashiCorp's mesh with strong service discovery and multi-datacenter support.
  • AWS App Mesh: Managed service mesh for AWS workloads using Envoy.

When to adopt

  • Running dozens or hundreds of microservices that need consistent security and observability.
  • Requiring zero-trust networking with automatic mTLS between all services.
  • Implementing sophisticated deployment strategies like canary releases.
  • Needing deep traffic insights without instrumenting every application.