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

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 

Recently uploaded (20)

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 

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>