SlideShare a Scribd company logo
Way to solve
Microservice
problems with
a Service Mesh
Linkerd 1.x implementation chosen for the purpose of a Demo
Andrii Minchekov
Software Architect
TOC
● Microservices challenges
● Service Mesh
○ Why
○ Overview
○ Features
○ Pros/cons
○ Frameworks comparison
○ Linkerd Demo
● Questions
Microservice challenges
1. Infrastructure is not reliable and sometimes slow,
partial failures possible
2. Request routing and load balancing is hard under scaling
3. It’s difficult to understand what’s happening in real time.
4. Secure communication between services
5. Dev team requires experience with specific microservice libraries,
technology diversity
6. Ops team need to manage and monitor lots of services, which are
being redeployed regularly.
Why Service Mesh (Linkerd)?
Stakeholder Concerns Benefits
Management Why do we need it?
What is the cost?
What are the risks? Is it mature
technology?
What dependencies are we introducing
to our business?
● We have fewer outages
● Our services are resilient
● We receive unified visibility
across all services
● Business services are not
touched at all
● We receive much faster pace of
development
● Cost: ~ 2 month to be integrated
against 10 months by integrating
dedicated libs into business apps
1 node needs up to 200mb of
memory, can serve 10k req/sec
● Only 2 years on the market but
based on mature RPC
framework from Twitter (Finagle).
Member of CNCF
● We introduce 1 more technical
service (possibly multiple nodes)
what is the good design principle
to solve complex problems by
introducing layer of indirection
Stakeholder Concerns Benefits
Developers
Operations
What do I have to change?
Do I have to learn a new technology?
How to test it?
Is it reliable?
Will it introduce complexity?
Is it secure?
● Get rid of the complex
communication logic from your
code
● Yes, but it’s only declarative
YAML configuration mostly done
by Senior Engineers or even
Operations team
● System tests should be in place.
It’s just 1 more technical service
to dev infrastructure but allows
easily run parallel versions of a
service, do dynamic routing
per-request
● All service communication metrics
will be at your hand with possible
alerting in case of a problem
No cascading failures, they will
be isolated
● Just 1 more service to deploy and
configure but it allows to do easily
staging, blue/green, canary
deployment
● Yes, consistent TLS across all
services supported
Service Mesh Overview
It’s a dedicated infrastructure layer to manage service to service
communication in a fast and resilient manner for microservices. It abstracts
the mechanics of reliably delivering requests between services.
Service Mesh is typically implemented as an array of lightweight network
proxies that are deployed alongside app code, without the app needing to be
aware.
Features
PROS CONS
● It provides Service Metrics such as success rates,
request volumes, latencies, etc without requiring
changes to application code.
● Easy and quick to adopt Load Balancing, Circuit
Breaker, Timeouts/Retries, Dynamic Routing,
Distributed Tracing, Security for an
existing/legacy applications. Good coordinating
of retries and timeouts across multiple services.
Some Estimates just to implement Discovery
client:
Linkerd setup: ~ 10 days
Add lib per srv: 1 day * 60 services ~ 60 days
● Service developers can focus more on the
business logic while most of service-to-service
communication related functionality is offloaded
to Service Mesh.
● Possibility to easily do Staging, Blue/Green,
Canary, Continuous Deployment, A/B testing
without needing to restart
● Immature
● Only Internal traffic can be handled. No single
entry point is exposed to external clients.
● Resource intensive that increase the number of
runtime instances that you have in a given
microservice implementation.
Up to 200mb of memory required to operate for
1 node, 10k req/sec per node
● Extra hops will be added. Each service call has
to go through an extra hops, xx ms (through
Service Mesh sidecar proxy)
Frameworks Comparison
Demo time
1. Demo project architecture.
Docker-compose configuration.
2. Linkerd Integration.
Business services are free of code changes.
Only Proxy address as a System property should be provided to service
deployment.
3. Linkerd configuration.
Basic concepts.
Load balancing, Circuit Breaker, Timeouts/Retry, Observability,
Dynamic Routing
1. Demo project Architecture
LINKERD
Order-Service
User-Service
API-Gateway
Service Registry
(Consul)
Zipkin
Prometheus
Grafana
2. Linkerd Integration
● HTTP Proxy.
Use JVM flags
-Dhttp.proxyHost=linkerd-host -Dhttp.proxyPort=4141
● Send traffic directly to Linkerd
Use Http Headers.
3. Linkerd Configuration
1. Routers
a. Servers
b. Protocols (HTTP/1.1, HTTP/2, TCP, gRPC, Thrift, Mux)
c. Delegation tables (dtab)
d. Identifiers
e. Service, prefixes
f. Client, prefixes
2. Namers
3. Telemetry
Consists of 4 steps:
identification, binding, resolution, load balancing.
Routing
Dynamic request routing and traffic shifting
Use HTTP header “l5d-dtab” as a dtab rule to be used for routing a particular request
Use namerd service to enable the ability to make dtab changes at runtime, without
needing to restart Linkerd.
Observability
Grafana Dashboards with success rate, latency, throughput, etc
Thank you!
Questions?
POC Source Code
https://github.com/menya84/servicemesh

More Related Content

Similar to Service-Mesh-Presentation.pdf

Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices
confluent
 
Microservices-101
Microservices-101Microservices-101
Microservices-101
Subhashish Bhattacharjee
 
Surviving microservices
Surviving microservicesSurviving microservices
Surviving microservices
Francesco Degrassi
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
Žilvinas Kuusas
 
Yotpo microservices
Yotpo microservicesYotpo microservices
Yotpo microservices
Ron Barabash
 
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JSFestUA
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Anil Allewar
 
Anuta NCX Platform Overview - Agile Network Services with Orchestration
Anuta NCX Platform Overview - Agile Network Services with OrchestrationAnuta NCX Platform Overview - Agile Network Services with Orchestration
Anuta NCX Platform Overview - Agile Network Services with Orchestration
Kiran Sirupa
 
Service mesh
Service meshService mesh
Service mesh
Arnab Mitra
 
Atrinet - Lifecycle Service Manager
Atrinet - Lifecycle  Service  Manager                              Atrinet - Lifecycle  Service  Manager
Atrinet - Lifecycle Service Manager
Atrinet - Network Management Solutions
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
WSO2
 
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
apidays
 
Unit 1.2 move to cloud computing
Unit 1.2   move to cloud computingUnit 1.2   move to cloud computing
Unit 1.2 move to cloud computing
eShikshak
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
Ajay Kumar Uppal
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
WSO2
 
Microservice
MicroserviceMicroservice
Microservice
Viney Shih
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
PLovababu
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
Rick Hightower
 
Consumer-Driven Contract Testing With Postman
Consumer-Driven Contract Testing With PostmanConsumer-Driven Contract Testing With Postman
Consumer-Driven Contract Testing With Postman
Postman
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021
Ieva Navickaite
 

Similar to Service-Mesh-Presentation.pdf (20)

Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices
 
Microservices-101
Microservices-101Microservices-101
Microservices-101
 
Surviving microservices
Surviving microservicesSurviving microservices
Surviving microservices
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Yotpo microservices
Yotpo microservicesYotpo microservices
Yotpo microservices
 
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Anuta NCX Platform Overview - Agile Network Services with Orchestration
Anuta NCX Platform Overview - Agile Network Services with OrchestrationAnuta NCX Platform Overview - Agile Network Services with Orchestration
Anuta NCX Platform Overview - Agile Network Services with Orchestration
 
Service mesh
Service meshService mesh
Service mesh
 
Atrinet - Lifecycle Service Manager
Atrinet - Lifecycle  Service  Manager                              Atrinet - Lifecycle  Service  Manager
Atrinet - Lifecycle Service Manager
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
 
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
 
Unit 1.2 move to cloud computing
Unit 1.2   move to cloud computingUnit 1.2   move to cloud computing
Unit 1.2 move to cloud computing
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
 
Microservice
MicroserviceMicroservice
Microservice
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
 
Consumer-Driven Contract Testing With Postman
Consumer-Driven Contract Testing With PostmanConsumer-Driven Contract Testing With Postman
Consumer-Driven Contract Testing With Postman
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021
 

Recently uploaded

Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
Col Mukteshwar Prasad
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
PedroFerreira53928
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
Celine George
 
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
AzmatAli747758
 
Fish and Chips - have they had their chips
Fish and Chips - have they had their chipsFish and Chips - have they had their chips
Fish and Chips - have they had their chips
GeoBlogs
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
Celine George
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
MIRIAMSALINAS13
 

Recently uploaded (20)

Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
 
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
 
Fish and Chips - have they had their chips
Fish and Chips - have they had their chipsFish and Chips - have they had their chips
Fish and Chips - have they had their chips
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
 

Service-Mesh-Presentation.pdf

  • 1. Way to solve Microservice problems with a Service Mesh Linkerd 1.x implementation chosen for the purpose of a Demo Andrii Minchekov Software Architect
  • 2. TOC ● Microservices challenges ● Service Mesh ○ Why ○ Overview ○ Features ○ Pros/cons ○ Frameworks comparison ○ Linkerd Demo ● Questions
  • 3. Microservice challenges 1. Infrastructure is not reliable and sometimes slow, partial failures possible 2. Request routing and load balancing is hard under scaling 3. It’s difficult to understand what’s happening in real time. 4. Secure communication between services 5. Dev team requires experience with specific microservice libraries, technology diversity 6. Ops team need to manage and monitor lots of services, which are being redeployed regularly.
  • 4. Why Service Mesh (Linkerd)? Stakeholder Concerns Benefits Management Why do we need it? What is the cost? What are the risks? Is it mature technology? What dependencies are we introducing to our business? ● We have fewer outages ● Our services are resilient ● We receive unified visibility across all services ● Business services are not touched at all ● We receive much faster pace of development ● Cost: ~ 2 month to be integrated against 10 months by integrating dedicated libs into business apps 1 node needs up to 200mb of memory, can serve 10k req/sec ● Only 2 years on the market but based on mature RPC framework from Twitter (Finagle). Member of CNCF ● We introduce 1 more technical service (possibly multiple nodes) what is the good design principle to solve complex problems by introducing layer of indirection
  • 5. Stakeholder Concerns Benefits Developers Operations What do I have to change? Do I have to learn a new technology? How to test it? Is it reliable? Will it introduce complexity? Is it secure? ● Get rid of the complex communication logic from your code ● Yes, but it’s only declarative YAML configuration mostly done by Senior Engineers or even Operations team ● System tests should be in place. It’s just 1 more technical service to dev infrastructure but allows easily run parallel versions of a service, do dynamic routing per-request ● All service communication metrics will be at your hand with possible alerting in case of a problem No cascading failures, they will be isolated ● Just 1 more service to deploy and configure but it allows to do easily staging, blue/green, canary deployment ● Yes, consistent TLS across all services supported
  • 6. Service Mesh Overview It’s a dedicated infrastructure layer to manage service to service communication in a fast and resilient manner for microservices. It abstracts the mechanics of reliably delivering requests between services. Service Mesh is typically implemented as an array of lightweight network proxies that are deployed alongside app code, without the app needing to be aware.
  • 8. PROS CONS ● It provides Service Metrics such as success rates, request volumes, latencies, etc without requiring changes to application code. ● Easy and quick to adopt Load Balancing, Circuit Breaker, Timeouts/Retries, Dynamic Routing, Distributed Tracing, Security for an existing/legacy applications. Good coordinating of retries and timeouts across multiple services. Some Estimates just to implement Discovery client: Linkerd setup: ~ 10 days Add lib per srv: 1 day * 60 services ~ 60 days ● Service developers can focus more on the business logic while most of service-to-service communication related functionality is offloaded to Service Mesh. ● Possibility to easily do Staging, Blue/Green, Canary, Continuous Deployment, A/B testing without needing to restart ● Immature ● Only Internal traffic can be handled. No single entry point is exposed to external clients. ● Resource intensive that increase the number of runtime instances that you have in a given microservice implementation. Up to 200mb of memory required to operate for 1 node, 10k req/sec per node ● Extra hops will be added. Each service call has to go through an extra hops, xx ms (through Service Mesh sidecar proxy)
  • 10. Demo time 1. Demo project architecture. Docker-compose configuration. 2. Linkerd Integration. Business services are free of code changes. Only Proxy address as a System property should be provided to service deployment. 3. Linkerd configuration. Basic concepts. Load balancing, Circuit Breaker, Timeouts/Retry, Observability, Dynamic Routing
  • 11. 1. Demo project Architecture LINKERD Order-Service User-Service API-Gateway Service Registry (Consul) Zipkin Prometheus Grafana
  • 12. 2. Linkerd Integration ● HTTP Proxy. Use JVM flags -Dhttp.proxyHost=linkerd-host -Dhttp.proxyPort=4141 ● Send traffic directly to Linkerd Use Http Headers.
  • 13. 3. Linkerd Configuration 1. Routers a. Servers b. Protocols (HTTP/1.1, HTTP/2, TCP, gRPC, Thrift, Mux) c. Delegation tables (dtab) d. Identifiers e. Service, prefixes f. Client, prefixes 2. Namers 3. Telemetry
  • 14. Consists of 4 steps: identification, binding, resolution, load balancing. Routing
  • 15. Dynamic request routing and traffic shifting Use HTTP header “l5d-dtab” as a dtab rule to be used for routing a particular request Use namerd service to enable the ability to make dtab changes at runtime, without needing to restart Linkerd.
  • 16. Observability Grafana Dashboards with success rate, latency, throughput, etc
  • 17. Thank you! Questions? POC Source Code https://github.com/menya84/servicemesh