Service Management using service mesh – enables better insights and control
Service level control over the traffic flow, configurable traffic routing, detailed telemetry, constant monitoring, graceful handling of failures, strong authentication and access control are needed to enable better insights and control across all services. Benefits of service mesh architecture here will be:
- Uniform observability
- Fine grained traffic control
- Inter service security enablement
- Decoupled functional responsibilities
Various models that support a service mesh pattern are :
Library: Each microservice has a library that includes the service mesh features. Mostly suited if services are written in one language. E.g. Hysterix
Node agent: An agent runs on every node, realizing the service mesh features and can serve varied types of workloads. The technology can be heterogeneous. E.g. Kubelet, Linkerd's mesh
Sidecar: In this pattern there is a sidecar that is attached to the main application, co-locating the related tasks and complementing the main application by providing the supporting service mesh features. E.g. Istio with Envoy, NginMesh with Istio
Out of these, the sidecar pattern has some advantages that makes it a preferred choice in certain frameworks.
- The sidecar supports a heterogeneous set of languages and frameworks
- The sidecar extends the services with absolutely no changes to the main service code
- No impact on the communication latency
Service Management through Istio service mesh
Istio, created by Google, IBM and Lyft, is a service mesh that provides behavioural insights and operational control over the service mesh using (a) a data plane and (b) a control plane (refer to the diagram below).