SlideShare a Scribd company logo
1 of 47
Download to read offline
I’m A Developer;
Should I Care About A Service Mesh?
Neeraj Poddar
Engineering Lead, Aspen Mesh
Developers Are The New Kingmakers
Companies want developers to focus more on
business logic
Monolith vs Microservices
~ https://martinfowler.com/articles/microservices.html
Introducing Service Mesh
A service mesh is…
a transparent infrastructure layer that manages communication
between microservices
so that developers can focus on business logic
while operators work independent of dev cycles to provide a more
resilient environment
Sidecar Proxy Architecture
Service Mesh Control Plane
App A
Proxy
App B
Proxy
Service A Service B
Observability
Security
Traffic
Management
What Should Developers Care About?
• What functionality can I offload?
• Do I need to change my applications?
Considerations when using a service mesh?
What functionality can I offload?
Telemetry
App A
Proxy
App B
Proxy
Service A Service B
Telemetry
Stats Adapter
App A
Proxy
App B
Proxy
Service A Service B
Telemetry
Stats Adapter
App A
Proxy
App B
Proxy
Service A Service B
Service level metrics
Telemetry
Stats Adapter
App A
Proxy
App B
Proxy
Service A Service B
Service level metrics
SLO Dashboards
Telemetry
Stats Adapter
App A
Proxy
App B
Proxy
Service A Service B
Service level metrics
SLO Dashboards
Application level metrics
Telemetry
Stats Adapter
App A
Proxy
App B
Proxy
Service A Service B
Service level metrics
SLO Dashboards
Application level metrics
SLI
Measurements
Mutual TLS
App A
Proxy
App B
Proxy
Service A Service B
Mutual TLS
Certificate Manager
App A
Proxy
App B
Proxy
Service A Service B
Certificate Provisioning/Rotation
Mutual TLS
Certificate Manager
App A
Proxy
App B
Proxy
Service A Service B
Certificate Provisioning/Rotation
Workload Identity Workload Identity
Distributed Tracing
App A
Proxy
App B
Proxy
Service A Service B
App C
Proxy
Service C
Distributed Tracing
App A
Proxy
App B
Proxy
Service A Service B
App C
Proxy
Service C
x-b3-traceId: T1
x-b3-spanId: T1
x-b3-parentSpanId: T1
Distributed Tracing
App A
Proxy
App B
Proxy
Service A Service B
App C
Proxy
Service C
x-b3-traceId: T1
x-b3-spanId: T1
x-b3-parentSpanId: T1
x-b3-traceId: T1
x-b3-spanId: T2
x-b3-parentSpanId: T1
Distributed Tracing
App A
Proxy
App B
Proxy
Service A Service B
App C
Proxy
Service C
x-b3-traceId: T1
x-b3-spanId: T1
x-b3-parentSpanId: T1
x-b3-traceId: T1
x-b3-spanId: T2
x-b3-parentSpanId: T1
x-b3-traceId: T1
x-b3-spanId: T1
x-b3-parentSpanId: T1
Context Propagation
Distributed Tracing
App A
Proxy
App B
Proxy
Service A Service B
App C
Proxy
Service C
x-b3-traceId: T1
x-b3-spanId: T1
x-b3-parentSpanId: T1
x-b3-traceId: T1
x-b3-spanId: T2
x-b3-parentSpanId: T1
x-b3-traceId: T1
x-b3-spanId: T1
x-b3-parentSpanId: T1
Context Propagation
Async Reporting
Distributed Tracing
App A
Proxy
App B
Proxy
Service A Service B
App C
Proxy
Service C
x-b3-traceId: T1
x-b3-spanId: T1
x-b3-parentSpanId: T1
x-b3-traceId: T1
x-b3-spanId: T2
x-b3-parentSpanId: T1
x-b3-traceId: T1
x-b3-spanId: T1
x-b3-parentSpanId: T1
Context Propagation
Async Reporting
Application Spans
• Do I need to change my applications?
Well…it depends
• Are you using distributed tracing?
•
• Are you talking to external services?
App A
Proxy
Service A
External
DB
Well…it depends
• Are you using distributed tracing?
•
• Are you talking to external services?
App A
Proxy
Service A
External
DB
Well…it depends
• Are you using distributed tracing?
•
• Are you talking to external services?
App A
Proxy
Service A
External
DB
Stats Adapter
TCP Metrics
Well…it depends
• Are you using distributed tracing?
•
• Are you talking to external services?
App A
Proxy
Service A
External
DB
Stats Adapter
TCP Metrics
Well…it depends
• Are you using distributed tracing?
•
• Are you talking to external services?
App A
Proxy
Service A
External
DB
Stats Adapter
TCP Metrics
Well…it depends
• Are you using distributed tracing?
•
• Are you talking to external services?
App A
Proxy
Service A
External
DB
Stats Adapter
Well…it depends
• Are you using distributed tracing?
•
• Are you talking to external services?
App A
Proxy
Service A
External
DB
Stats Adapter
HTTP Metrics
Considerations when using a service mesh?
Application Requirements
Purely event driven architectures
Customized load-balancing/persistence requirements
Highly latency sensitive
How To Make A Service Mesh Work…
Real Life Use Case!
AUTH
SERVICE
Service B Service C
Service A Service B Service C
ISTIO
INGRESS
Namespace: user-1
Service A
Namespace: user-2
https://my.aspenmesh.io/serviceA/<cluster-id>
DB
AUTH
SERVICE
Service B Service C
Service A Service B Service C
ISTIO
INGRESS
Namespace: user-1
Service A
Namespace: user-2
https://my.aspenmesh.io/serviceA/<cluster-id>
DB
AUTH
SERVICE
Service B Service C
Service A Service B Service C
ISTIO
INGRESS
Namespace: user-1
Service A
Namespace: user-2
Zero Downtime Migration
https://my.aspenmesh.io/serviceA/<cluster-id>
DB
AUTH
SERVICE
Service B Service C
Service A Service B Service C
ISTIO
INGRESS
Service A
Zero Downtime Migration
https://my.aspenmesh.io/serviceA/<cluster-id>
DB
AUTH
SERVICE
Service B Service C
Service A Service B Service C
ISTIO
INGRESS
Service A
Zero Downtime Migration
Namespace: org-2
https://my.aspenmesh.io/serviceA/<cluster-id>
Namespace: org-1
DB
Service A Service B Service C
ISTIO
INGRESS
Zero Downtime Migration: Option 1
Namespace: user-2
AUTH
SERVICE OLD
Sends traffic to user namespaces
https://my.aspenmesh.io/serviceA/<cluster-id>
AUTH
SERVICE NEW
Service B Service C
Service A Service B Service C
ISTIO
INGRESS
Namespace: org-1
Service A
Zero Downtime Migration: Option 1
Namespace: user-2
AUTH
SERVICE OLD
Sends traffic to user namespaces
Sends traffic to org namespaces
https://my.aspenmesh.io/serviceA/<cluster-id>
AUTH
SERVICE NEW
Service B Service C
Service A Service B Service C
ISTIO
INGRESS
Namespace: org-1
Service A
Zero Downtime Migration: Option 1
Namespace: user-2
AUTH
SERVICE OLD
Sends traffic to user namespaces
Sends traffic to org namespaces
host: my.aspenmesh.io
port: 443
path: serviceA/cluster-1
route:
destination: auth-service-new
default:
route:
destination: auth-service-old
https://my.aspenmesh.io/serviceA/<cluster-id>
Service A Service B Service C
ISTIO
INGRESS
Zero Downtime Migration: Option 2
Namespace: user-2
AUTH
SERVICE
https://my.aspenmesh.io/serviceA/<cluster-id>
Service A Service B Service C
ISTIO
INGRESS
Zero Downtime Migration: Option 2
Namespace: user-2
AUTH
SERVICE
https://my.aspenmesh.io/serviceA/<cluster-id>
Service A Service B Service C
ISTIO
INGRESS
Zero Downtime Migration: Option 2
Namespace: user-2
AUTH
SERVICE
ENVOY
PROXY
https://my.aspenmesh.io/serviceA/<cluster-id>
Service B Service C
Service A Service B Service C
ISTIO
INGRESS
Namespace: org-1
Service A
Zero Downtime Migration: Option 2
Namespace: user-2
AUTH
SERVICE
ENVOY
PROXY
host:serviceA.user-1.svc.cluster.local
route:
destination:
serviceA.org-1.svc.cluster.local
----
host:serviceB.user-1.svc.cluster.local
route:
destination:
serviceB.org-1.svc.cluster.local
…..
https://my.aspenmesh.io/serviceA/<cluster-id>
Questions?
Neeraj Poddar
@nrjpoddar
neeraj@aspenmesh.io

More Related Content

Similar to OSCON 2019 - I'm a Developer, should I care about a service mesh?

Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventPros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventSudhir Tonse
 
Managing microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupManaging microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupJosé Román Martín Gil
 
DEV329_Cisco’s Journey from Monolith to Microservices
DEV329_Cisco’s Journey from Monolith to MicroservicesDEV329_Cisco’s Journey from Monolith to Microservices
DEV329_Cisco’s Journey from Monolith to MicroservicesAmazon Web Services
 
Smart networking with service meshes
Smart networking with service meshes  Smart networking with service meshes
Smart networking with service meshes Mitchell Pronschinske
 
Building a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istioBuilding a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istioSAMIR BEHARA
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaGuido Schmutz
 
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFMigrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFRoy Braam
 
Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019
Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019
Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019AWSKRUG - AWS한국사용자모임
 
Forward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentationForward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentationAndrew Wesbecher
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service MeshGeorgios Andrianakis
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architectureChris Richardson
 
Developing Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris RichardsonDeveloping Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris RichardsonJAXLondon2014
 
Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Chris Richardson
 
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18CodeOps Technologies LLP
 
AWS Community Day Ireland - Building roads and bridges in the last decade of ...
AWS Community Day Ireland - Building roads and bridges in the last decade of ...AWS Community Day Ireland - Building roads and bridges in the last decade of ...
AWS Community Day Ireland - Building roads and bridges in the last decade of ...Heitor Lessa
 
Developing applications with a microservice architecture (svcc)
Developing applications with a microservice architecture (svcc)Developing applications with a microservice architecture (svcc)
Developing applications with a microservice architecture (svcc)Chris Richardson
 
Forward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentationForward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentationForward Networks
 

Similar to OSCON 2019 - I'm a Developer, should I care about a service mesh? (20)

Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventPros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
 
Managing microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupManaging microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - Meetup
 
DEV329_Cisco’s Journey from Monolith to Microservices
DEV329_Cisco’s Journey from Monolith to MicroservicesDEV329_Cisco’s Journey from Monolith to Microservices
DEV329_Cisco’s Journey from Monolith to Microservices
 
Smart networking with service meshes
Smart networking with service meshes  Smart networking with service meshes
Smart networking with service meshes
 
Building a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istioBuilding a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istio
 
Istio presentation jhug
Istio presentation jhugIstio presentation jhug
Istio presentation jhug
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
 
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFMigrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
 
Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019
Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019
Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019
 
Forward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentationForward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentation
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh
 
Microservice Powered Orchestration
Microservice Powered OrchestrationMicroservice Powered Orchestration
Microservice Powered Orchestration
 
Api observability
Api observability Api observability
Api observability
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture
 
Developing Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris RichardsonDeveloping Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris Richardson
 
Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...
 
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
 
AWS Community Day Ireland - Building roads and bridges in the last decade of ...
AWS Community Day Ireland - Building roads and bridges in the last decade of ...AWS Community Day Ireland - Building roads and bridges in the last decade of ...
AWS Community Day Ireland - Building roads and bridges in the last decade of ...
 
Developing applications with a microservice architecture (svcc)
Developing applications with a microservice architecture (svcc)Developing applications with a microservice architecture (svcc)
Developing applications with a microservice architecture (svcc)
 
Forward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentationForward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentation
 

Recently uploaded

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 

Recently uploaded (20)

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 

OSCON 2019 - I'm a Developer, should I care about a service mesh?

  • 1. I’m A Developer; Should I Care About A Service Mesh? Neeraj Poddar Engineering Lead, Aspen Mesh
  • 2. Developers Are The New Kingmakers
  • 3. Companies want developers to focus more on business logic
  • 4. Monolith vs Microservices ~ https://martinfowler.com/articles/microservices.html
  • 5. Introducing Service Mesh A service mesh is… a transparent infrastructure layer that manages communication between microservices so that developers can focus on business logic while operators work independent of dev cycles to provide a more resilient environment
  • 6. Sidecar Proxy Architecture Service Mesh Control Plane App A Proxy App B Proxy Service A Service B Observability Security Traffic Management
  • 7. What Should Developers Care About? • What functionality can I offload? • Do I need to change my applications? Considerations when using a service mesh?
  • 10. Telemetry Stats Adapter App A Proxy App B Proxy Service A Service B
  • 11. Telemetry Stats Adapter App A Proxy App B Proxy Service A Service B Service level metrics
  • 12. Telemetry Stats Adapter App A Proxy App B Proxy Service A Service B Service level metrics SLO Dashboards
  • 13. Telemetry Stats Adapter App A Proxy App B Proxy Service A Service B Service level metrics SLO Dashboards Application level metrics
  • 14. Telemetry Stats Adapter App A Proxy App B Proxy Service A Service B Service level metrics SLO Dashboards Application level metrics SLI Measurements
  • 15. Mutual TLS App A Proxy App B Proxy Service A Service B
  • 16. Mutual TLS Certificate Manager App A Proxy App B Proxy Service A Service B Certificate Provisioning/Rotation
  • 17. Mutual TLS Certificate Manager App A Proxy App B Proxy Service A Service B Certificate Provisioning/Rotation Workload Identity Workload Identity
  • 18. Distributed Tracing App A Proxy App B Proxy Service A Service B App C Proxy Service C
  • 19. Distributed Tracing App A Proxy App B Proxy Service A Service B App C Proxy Service C x-b3-traceId: T1 x-b3-spanId: T1 x-b3-parentSpanId: T1
  • 20. Distributed Tracing App A Proxy App B Proxy Service A Service B App C Proxy Service C x-b3-traceId: T1 x-b3-spanId: T1 x-b3-parentSpanId: T1 x-b3-traceId: T1 x-b3-spanId: T2 x-b3-parentSpanId: T1
  • 21. Distributed Tracing App A Proxy App B Proxy Service A Service B App C Proxy Service C x-b3-traceId: T1 x-b3-spanId: T1 x-b3-parentSpanId: T1 x-b3-traceId: T1 x-b3-spanId: T2 x-b3-parentSpanId: T1 x-b3-traceId: T1 x-b3-spanId: T1 x-b3-parentSpanId: T1 Context Propagation
  • 22. Distributed Tracing App A Proxy App B Proxy Service A Service B App C Proxy Service C x-b3-traceId: T1 x-b3-spanId: T1 x-b3-parentSpanId: T1 x-b3-traceId: T1 x-b3-spanId: T2 x-b3-parentSpanId: T1 x-b3-traceId: T1 x-b3-spanId: T1 x-b3-parentSpanId: T1 Context Propagation Async Reporting
  • 23. Distributed Tracing App A Proxy App B Proxy Service A Service B App C Proxy Service C x-b3-traceId: T1 x-b3-spanId: T1 x-b3-parentSpanId: T1 x-b3-traceId: T1 x-b3-spanId: T2 x-b3-parentSpanId: T1 x-b3-traceId: T1 x-b3-spanId: T1 x-b3-parentSpanId: T1 Context Propagation Async Reporting Application Spans
  • 24. • Do I need to change my applications?
  • 25. Well…it depends • Are you using distributed tracing? • • Are you talking to external services? App A Proxy Service A External DB
  • 26. Well…it depends • Are you using distributed tracing? • • Are you talking to external services? App A Proxy Service A External DB
  • 27. Well…it depends • Are you using distributed tracing? • • Are you talking to external services? App A Proxy Service A External DB Stats Adapter TCP Metrics
  • 28. Well…it depends • Are you using distributed tracing? • • Are you talking to external services? App A Proxy Service A External DB Stats Adapter TCP Metrics
  • 29. Well…it depends • Are you using distributed tracing? • • Are you talking to external services? App A Proxy Service A External DB Stats Adapter TCP Metrics
  • 30. Well…it depends • Are you using distributed tracing? • • Are you talking to external services? App A Proxy Service A External DB Stats Adapter
  • 31. Well…it depends • Are you using distributed tracing? • • Are you talking to external services? App A Proxy Service A External DB Stats Adapter HTTP Metrics
  • 32. Considerations when using a service mesh?
  • 33. Application Requirements Purely event driven architectures Customized load-balancing/persistence requirements Highly latency sensitive
  • 34. How To Make A Service Mesh Work…
  • 35. Real Life Use Case! AUTH SERVICE Service B Service C Service A Service B Service C ISTIO INGRESS Namespace: user-1 Service A Namespace: user-2 https://my.aspenmesh.io/serviceA/<cluster-id> DB
  • 36. AUTH SERVICE Service B Service C Service A Service B Service C ISTIO INGRESS Namespace: user-1 Service A Namespace: user-2 https://my.aspenmesh.io/serviceA/<cluster-id> DB
  • 37. AUTH SERVICE Service B Service C Service A Service B Service C ISTIO INGRESS Namespace: user-1 Service A Namespace: user-2 Zero Downtime Migration https://my.aspenmesh.io/serviceA/<cluster-id> DB
  • 38. AUTH SERVICE Service B Service C Service A Service B Service C ISTIO INGRESS Service A Zero Downtime Migration https://my.aspenmesh.io/serviceA/<cluster-id> DB
  • 39. AUTH SERVICE Service B Service C Service A Service B Service C ISTIO INGRESS Service A Zero Downtime Migration Namespace: org-2 https://my.aspenmesh.io/serviceA/<cluster-id> Namespace: org-1 DB
  • 40. Service A Service B Service C ISTIO INGRESS Zero Downtime Migration: Option 1 Namespace: user-2 AUTH SERVICE OLD Sends traffic to user namespaces https://my.aspenmesh.io/serviceA/<cluster-id>
  • 41. AUTH SERVICE NEW Service B Service C Service A Service B Service C ISTIO INGRESS Namespace: org-1 Service A Zero Downtime Migration: Option 1 Namespace: user-2 AUTH SERVICE OLD Sends traffic to user namespaces Sends traffic to org namespaces https://my.aspenmesh.io/serviceA/<cluster-id>
  • 42. AUTH SERVICE NEW Service B Service C Service A Service B Service C ISTIO INGRESS Namespace: org-1 Service A Zero Downtime Migration: Option 1 Namespace: user-2 AUTH SERVICE OLD Sends traffic to user namespaces Sends traffic to org namespaces host: my.aspenmesh.io port: 443 path: serviceA/cluster-1 route: destination: auth-service-new default: route: destination: auth-service-old https://my.aspenmesh.io/serviceA/<cluster-id>
  • 43. Service A Service B Service C ISTIO INGRESS Zero Downtime Migration: Option 2 Namespace: user-2 AUTH SERVICE https://my.aspenmesh.io/serviceA/<cluster-id>
  • 44. Service A Service B Service C ISTIO INGRESS Zero Downtime Migration: Option 2 Namespace: user-2 AUTH SERVICE https://my.aspenmesh.io/serviceA/<cluster-id>
  • 45. Service A Service B Service C ISTIO INGRESS Zero Downtime Migration: Option 2 Namespace: user-2 AUTH SERVICE ENVOY PROXY https://my.aspenmesh.io/serviceA/<cluster-id>
  • 46. Service B Service C Service A Service B Service C ISTIO INGRESS Namespace: org-1 Service A Zero Downtime Migration: Option 2 Namespace: user-2 AUTH SERVICE ENVOY PROXY host:serviceA.user-1.svc.cluster.local route: destination: serviceA.org-1.svc.cluster.local ---- host:serviceB.user-1.svc.cluster.local route: destination: serviceB.org-1.svc.cluster.local ….. https://my.aspenmesh.io/serviceA/<cluster-id>