Service Mesh. What does it mean? We have already learned Microservices and can develop complex distributed applications. Is Service Mesh something we need or is another fancy buzzword?
This presentation walks through the evolution of application architecture from Monolith to Service Mesh to give an idea of what a Service Mesh is, how it is applied to existing architectures and is focused help you to understand if you really need it.
2. Orkhan Gasimov
Digital Transformation Architect @ GlobalLogic
15 years of software engineering;
training & mentorship;
author of trainings about:
Microservices;
Spring Cloud;
Akka;
2Speaker
92. 92Pros & Cons
• Pros
• Solve common infrastructure cases
outside of the microservice code
• distributed tracing
• logging
• etc.
93. 93Pros & Cons
• Pros
• Solve common infrastructure cases
outside of the microservice code
• distributed tracing
• logging
• etc.
• Freedom of microservice tech stack
• no need to watch for libraries required for
distributed app development
94. 94Pros & Cons
• Pros
• Solve common infrastructure cases
outside of the microservice code
• distributed tracing
• logging
• etc.
• Freedom of microservice tech stack
• no need to watch for libraries required for
distributed app development
• Helps to focus on business logic
95. 95Pros & Cons
• Pros
• Solve common infrastructure cases
outside of the microservice code
• distributed tracing
• logging
• etc.
• Freedom of microservice tech stack
• no need to watch for libraries required for
distributed app development
• Helps to focus on business logic
• Cons
• Complexity & Extra Hops
• more runtime instances
• each service call has to go through sidecar
96. 96Pros & Cons
• Pros
• Solve common infrastructure cases
outside of the microservice code
• distributed tracing
• logging
• etc.
• Freedom of microservice tech stack
• no need to watch for libraries required for
distributed app development
• Helps to focus on business logic
• Cons
• Complexity & Extra Hops
• more runtime instances
• each service call has to go through sidecar
• Address a subset of problems
• still have to deal with complex cases like
complex routing, transformation and type
mapping, integration with other services
and systems
97. 97Pros & Cons
• Pros
• Solve common infrastructure cases
outside of the microservice code
• distributed tracing
• logging
• etc.
• Freedom of microservice tech stack
• no need to watch for libraries required for
distributed app development
• Helps to focus on business logic
• Cons
• Complexity & Extra Hops
• more runtime instances
• each service call has to go through sidecar
• Address a subset of problems
• still have to deal with complex cases like
complex routing, transformation and type
mapping, integration with other services
and systems
• Does not solve business logic or service
integration/composition related cases
98. 98https://kubedex.com/istio-vs-linkerd-vs-linkerd2-vs-consul/
Istio Linkerd Linkerd2 Consul Connect
Model Sidecar Node Agent Sidecar Sidecar
Platform Kubernetes Any Kubernetes Any
language Go JVM Go / Rust Go
Protocol
HTTP1.1 / HTTP2 / gRPC /
TCP
HTTP1.1 / HTTP2 / gRPC
HTTP1.1 / HTTP2 / gRPC /
TCP
TCP
Default Data Plane Envoy (supports others) Native Native Native (or Envoy)
Sidecar Injection Yes No Experimental No
Encryption Yes Yes Experimental Yes
Traffic Control
label/content based
routing, traffic shifting
Dynamic request routing,
traffic shifting, per request
routing
?
static upstream, prepared query,
http api / dns with native
integration
Resilience
timeouts, retries,
connection pools, outlier
detection
timeouts, retries, deadlines,
circuit breaking
? Pluggable
Prometheus Integration Yes Yes Yes No
Tracing Integration Jaeger Zipkin None Pluggable
Host to Host auth Service Accounts TLS Mutual Auth Experimental Consul ACL
Agent Caching Yes No No Yes
Secure connection outside
cluster
No Yes No Yes
Complexity High High Low Low
Paid Support No Yes Yes Yes
link https://istio.io/ https://linkerd.io/1/overview/ https://linkerd.io/2/overview/
https://www.consul.io/intro/getting-
started/connect.html