Service Mesh Fundamentals
A service mesh is an infrastructure layer for communication between application workloads. It uses a data plane of proxies and a control plane to provide workload identity, mutual TLS, traffic policy, and telemetry across services without each service implementing the same network behavior itself.
itDistributed systems, messaging, and integration | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Service Mesh Fundamentals
A service mesh is an infrastructure layer for communication between application workloads. It uses a data plane of proxies to handle live traffic and a control plane to distribute identity and policy, so a team gets consistent mutual TLS, traffic rules, and telemetry across services without each service implementing the same network behavior itself.
Before meshes, every service that wanted encryption, retries, or traffic metrics had to build them, and every team built them slightly differently. A mesh exists to make that someone else's job — specifically, the platform team's job.
Three ideas hold the practice up. The data plane handles live traffic; the control plane distributes configuration and certificates. The split is what makes the mesh an infrastructure layer rather than a library. A mesh can enforce mutual TLS between authenticated workloads, so both peers prove identity and the traffic is encrypted without the application touching TLS. And it can route traffic by policy — canaries, percentage splits, retries, timeouts — across every service-to-service call.
The one thing that surprises people: a mesh does not own the application's meaning. It supplies transport; the application owns the semantics. The mesh can retry a failed request, but only the application knows whether the operation is idempotent — safe to repeat after an uncertain network failure. A retry that repeats a non-idempotent state change doubles a charge, and that is the most common way a mesh silently introduces a business bug.
The thing that catches every team: the hard part is not wiring sidecars. Injection is a label. The hard part is writing authorization and traffic policy that says what you mean without breaking a production call, validating it before it applies, and rolling it back when it denies something it should not. Policy is a program that runs on every request; debugging it is the skill a mesh actually demands.
A mesh is now part of the request path, and outages of it are outages of the service. A well-designed mesh keeps forwarding on last-known configuration during a control-plane outage, but that is a property to verify, not an assumption to make. And a multicluster mesh is one failure domain to diagnose, not several independent ones — the network boundary it removes was also an isolation boundary that made incidents local.
Read the Intro for the data-plane and control-plane split and the responsibility boundary. The Cheatsheet holds the two data-plane modes — sidecar and ambient — side by side. The Timeline shows how a category that started with Linkerd and Istio in 2016 grew sidecars, then ambient mode, then eBPF dataplanes that question whether a mesh needs a proxy at all.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://istio.io/latest/about/service-mesh/
Supports
- Service mesh definition
- data-plane and control-plane split
- mTLS
- traffic management
- observability
- Istio founded by Google IBM and Lyft in 2016
- https://istio.io/latest/docs/overview/dataplane-modes/
Supports
- Sidecar and ambient data-plane modes
- ztunnel and waypoint proxies
- https://istio.io/latest/docs/concepts/security/
Supports
- Workload identity
- mutual TLS
- authorization policy
- https://istio.io/latest/docs/concepts/traffic-management/
Supports
- Traffic routing
- canary
- percentage shifts
- retries
- timeouts
- circuit breaking
- https://istio.io/latest/docs/concepts/observability/
Supports
- Mesh telemetry
- metrics
- traces
- logs
- https://istio.io/latest/about/faq/
Supports
- Ambient mode
- ztunnel behavior
- mTLS
- sidecar injection
- https://gateway.envoyproxy.io/latest/intro/what-is-envoy-gateway/
Supports
- Envoy Gateway for north-south traffic
- Gateway API
- https://opentelemetry.io/docs/concepts/observability-primer/
Supports
- Vendor-neutral observability model connecting mesh and application telemetry
- https://linkerd.io/
Supports
- Linkerd as the first service mesh
- Buoyant
- 2.0 rewrite on Envoy
- https://kuma.io/
Supports
- Kuma polyglot mesh on Envoy across Kubernetes and VMs
- https://consul.io/
Supports
- Consul Connect mesh integrated with Consul service discovery
- https://cilium.io/
Supports
- eBPF-based dataplane as a sidecarless mesh alternative
- https://www.envoyproxy.io/
Supports
- Envoy L7 proxy as the data-plane building block for most meshes
- https://konghq.com/kong-mesh
Supports
- Kong commercial mesh distribution on Kuma and Envoy
- https://www.nginx.com/
Supports
- NGINX Service Mesh and ingress controller integration
- https://traefik.io/
Supports
- Traefik cloud-native ingress and reverse proxy
- https://smi-spec.io/
Supports
- Service Mesh Interface portable mesh configuration specification
- https://www.solo.io/
Supports
- Solo commercial Istio distribution and multi-cluster management
