What is a Service Mesh?
Here’s the bottom line, a service mesh is a layer of communication and control between apps or microservices and the network stack they typically communicate over. That’s it. Simple.
A service mesh controls communication and helps any microservice share data with another. This service-to-service chatter is governed by logic built into the service mesh layer.
(Whoa whoa whoa. Microservices? Network stack? You might be asking, “Where can I find out what those are?” Don’t worry, we’ll get to those in another post. For now, if you don’t know, assume that microservices are small apps, partial apps, or individual functions, and the network stack is the physical networking layer.)
How is a Service Mesh Achieved?
Typically a service mesh is implemented via ‘sidecars‘ attached to every microservice on your network. The service mesh abstracts communication between microservices into these sidecars and the sidecars communicate with one another in a mesh topology.
Modern apps are smaller than their predecessors; as they’ve shrunk communication logic has been written into each app, microservice, function, etc. With one or two microservices, or maybe even a dozen, the communication logic generally isn’t difficult to deal with. At scale, or when you have hundreds of such apps, a service mesh can be thought of as ‘required’.
So, a service mesh is…
- a layer of communication control between apps or microservices
- the network stack they typically communicate over
- abstracts communication and implements ‘sidecars’ with every microservice