Let's begin with the definition of the service mesh. William Morgan in 2017 defined the service mesh as follows (https://buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need-one):
"A service mesh is a dedicated infrastructure layer for handling service-to-service communication. It's responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud-native application. In practice, the service mesh's implementation is an array of lightweight network proxies deployed alongside microservices, without the applications needing to be aware."
We can view a service mesh as a decoupling agent between Dev (provider) and Ops (consumer). Dev does not have to write any code in the microservices to provide capabilities that Ops need. Ops does not have to recompile the system, so both...