SlideShare a Scribd company logo
DEBUGGING
MICROSERVICES
Idit Levine
solo.io
About
meIdit Levine
Founder and CEO of solo.io
@Idit_Levine
@ilevine
Debugging microservices
applications is hard
The problem:
The problem
A monolithic application
consists of a single process
An attached debugger allows
viewing the complete state of
the application during runtime
A microservices application
consists of potentially hundreds
of processes
Is it possible to get a complete
view of the state of a such
application?!
The problem
The problem
OpenTracing
Solution I
OpenTracing
A
B
E
D
C
Edge service
Unique ID → {context}
{context}
{context}
{context}
{context}
1. assign a unique identifier to each
request at the edge service
2. store it in a context object, along with
other metadata
3. propagate the context across process
boundaries (in-band)
4. baggage is arbitrary K/V
5. capture timing, events, tags and collect
them out of band (async)
6.re-assemble the call tree from the storage
for the UI
OpenTracing
A
B
E
D
C
Edge service
Unique ID → {context}
{context}
{context}
{context}
{context}
A
B
E
C
D
TRACE
SPANS
OpenTracing Architecture
spans - basic unit of timing and causality. can be tagged with key/value pairs. logs - structured
data recorded on a span.
span context - serializable format for linking spans across network boundaries. carries baggage,
such as a request and client IDs.
tracers - anything that plugs into the OpenTracing API to record information. zipKin, jaeger &
lightstep. but also metrics (Prometheus) and logging.
OpenTracing
OpenTracing is a consistent, expressive, vendor-neutral APIs
for popular platforms, OpenTracing makes it easy for
developers to add (or switch) tracing implementations with an
O(1) configuration change.
OpenTracing Demo
OpenTracing uses
logging - easy to output to any logging tool, even from OSS components.
metrics/alerting - measure based on tags, span timing, log data.
context propagation - use baggage to carry request and user ID’s, etc.
critical path analysis - drill down into request latency in very high fidelity.
system topology analysis - identify bottlenecks due to shared resources.
OpenTracing limitations
openTracing does not provide run-time debugging
openTracing requires wrapping and changing the code
no holistic view of the application state – can only see what was printed
the process (repeatedly modify the application and test) is expansive
Impossible to change variable values in runtime
logging and printing results in performances overhead
Squash
Solution II
Squash brings the power of modern popular debuggers to developers of microservices apps that run on
container orchestration platforms.
Squash bridges between the orchestration platform (without changing it) and IDE.
With Squash, you can:
• Live debugging cross multi microservices
• Debug container in a pod
• Debug a service
• Set breakpoints
• Step through the code
• View and modify values of variables
• and more ...
Squash Demo
Squash Architecture
Squash server: holds the information about the breakpoints for
each application, orchestrates and controls the squash clients.
Squash server deploys and runs on Kubernetes
Squash client: deploys as daemon set on Kubernetes node. The
client wraps as docker container, and also contains the binary of
the debuggers.
Squash User Interface: squash uses IDEs as its user interface.
After installing the Squash extension, Squash commands are
available in the IDE command palette.
What vegetable scares all the
bugs? Squash!”
one of my 8-year old daughter's
favorite riddles
Squash Architecture: vs code
extension
vs code extension ➜ kubectl to present the
user pod/container/debugger options
vs code extension ➜ Squash server with
debug config (pod/container/debugger
/breakpoint) ➜ waits for debug session
vs code extension ➜ connects to the debug
server & transfers control to the native debug
extension.
Squash Architecture: Squash
Server
vs code extension ➜ Squash server
Squash server ➜ relevant Squash client with debug config
(pod/container/debugger /breakpoint)
Squash server ➜ waits for debug session
Squash Architecture: Squash Client
Squash server ➜ Squash client
Squash client ➜ container runtime interface (to obtain the
container host pid)
Squash client ➜ runs the debugger, attaches it to the process in the
container, and sets the application breakpoints
Squash client ➜ return debug session.
Squash high level
Architecture
Platforms IDEs Debuggers
Squash high level
Architecture
Platforms IDEs Debuggers
We are looking for community help to add support for more debuggers, platforms and IDEs.
Check out at github:
https://github.com/solo-io/squash
Squash: open source
project
Service mesh
Solution III
Service
MeshService mesh data plane:
Touches every packet/request in the system.
Responsible for service discovery, health
checking, routing, load balancing,
authentication/authorization, and observability.
Service mesh control plane:
Provides policy and configuration for all the
running data planes in the mesh. Does not touch
any packets/requests in the system. The control
plane turns all of the data planes into a
distributed system.
Envoy – data
planeOut of process architecture: developers to focus on business logic
Modern C++11 code base: Fast and productive.
L3/L4 filter architecture: Can be used for things other than HTTP (TCP proxy at its core)
HTTP L7 filter architecture: Make it easy to plug in different functionality.
HTTP/2 first! (Including gRPC and a nifty gRPC HTTP/1.1 bridge).
Service discovery and active health checking.
Advanced load balancing: Retry, timeouts, circuit breaking, rate limiting, shadowing, etc.
Best in class observability: stats, logging, and tracing.
Edge proxy: routing and TLS.
The network should be
transparent to applications.
When network and
application problems do
occur it should be easy to
determine the source of
the problem.
Istio – control
planePilot: responsible for the lifecycle of
Envoy instances deployed across the Istio
service mesh. Pilot exposes APIs for
service discovery, dynamic updates to
load balancing pools and routing
tables.
Mixer: provides Precondition Checking
(authentication, ACL checks and more),
Quota Management and Telemetry
Reporting.
Istio-Auth enhance the security of
microservices and their communication
without requiring service code changes.
Service mesh,
OpenTracing, and
Squash
Towards an integrated solution
The whole
solutionStep 1:
vs code extension ➜ Squash server creating a debug
config (service & image) and wait for the debug session to
connect.
Step 2:
envoy gets a curl request with squash header
Step 3:
➜ envoy ask Squash server to debug itself and wait for the
debug session.
1
2
3
4
5
The whole
solutionStep 4:
Squash server ➜ Squash client
Squash client ➜ container runtime interface (to obtain the
container host pid)
Squash client ➜ runs the debugger, attaches it to the process in
the container, and sets the application breakpoints
Squash client ➜ return debug session.
Step 5:
vs code extension ➜ connects to the debug
server & transfers control to the native debug
extension.
envoy resume traffic to the app
1
2
3
4
5
Service Mesh Demo
Ad

More Related Content

What's hot (20)

Power Automate Desktop.pptx
Power Automate Desktop.pptxPower Automate Desktop.pptx
Power Automate Desktop.pptx
PramodKonidela
 
Cloud Monitoring tool Grafana
Cloud Monitoring  tool Grafana Cloud Monitoring  tool Grafana
Cloud Monitoring tool Grafana
Dhrubaji Mandal ♛
 
Vdi strategy
Vdi strategyVdi strategy
Vdi strategy
latheefca
 
Docker infiniband
Docker infinibandDocker infiniband
Docker infiniband
Syoyo Fujita
 
VxRail_7.0.x_管理員手冊.en.zh-TW.docx
VxRail_7.0.x_管理員手冊.en.zh-TW.docxVxRail_7.0.x_管理員手冊.en.zh-TW.docx
VxRail_7.0.x_管理員手冊.en.zh-TW.docx
裝機安 Angelo
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
Sonatype
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh
Georgios Andrianakis
 
SX1302ベース LoRaWAN HAT for Rasberry Pi - PG1302 - コマンドライン・インストール編
SX1302ベース LoRaWAN HAT for Rasberry Pi - PG1302  - コマンドライン・インストール編SX1302ベース LoRaWAN HAT for Rasberry Pi - PG1302  - コマンドライン・インストール編
SX1302ベース LoRaWAN HAT for Rasberry Pi - PG1302 - コマンドライン・インストール編
CRI Japan, Inc.
 
Điều khiển vị trí PLC họ FX
Điều khiển vị trí PLC họ FXĐiều khiển vị trí PLC họ FX
Điều khiển vị trí PLC họ FX
quanglocbp
 
What’s New in VMware vSphere 7?
What’s New in VMware vSphere 7?What’s New in VMware vSphere 7?
What’s New in VMware vSphere 7?
Insight
 
DevOps is not enough - Embedding DevOps in a broader context
DevOps is not enough - Embedding DevOps in a broader contextDevOps is not enough - Embedding DevOps in a broader context
DevOps is not enough - Embedding DevOps in a broader context
Uwe Friedrichsen
 
Trend micro deep security
Trend micro deep securityTrend micro deep security
Trend micro deep security
Trend Micro
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
Chu-Siang Lai
 
Repository Management with JFrog Artifactory
Repository Management with JFrog ArtifactoryRepository Management with JFrog Artifactory
Repository Management with JFrog Artifactory
Stephen Chin
 
[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...
[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...
[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...
Obeo
 
Virtual Infrastructure Overview
Virtual Infrastructure OverviewVirtual Infrastructure Overview
Virtual Infrastructure Overview
valerian_ceaus
 
High Level Solution Document for VDI Project
High Level Solution Document for VDI ProjectHigh Level Solution Document for VDI Project
High Level Solution Document for VDI Project
Shahab Al Yamin Chawdhury
 
VMware vSphere
VMware vSphereVMware vSphere
VMware vSphere
零壹科技股份有限公司
 
Azure DevOps - Version Controlling with Git
Azure DevOps - Version Controlling with GitAzure DevOps - Version Controlling with Git
Azure DevOps - Version Controlling with Git
Eng Teong Cheah
 
Tips For Building Private Cloud Architecture With Virtualization
Tips For Building Private Cloud Architecture With Virtualization Tips For Building Private Cloud Architecture With Virtualization
Tips For Building Private Cloud Architecture With Virtualization
Aventis Systems, Inc.
 
Power Automate Desktop.pptx
Power Automate Desktop.pptxPower Automate Desktop.pptx
Power Automate Desktop.pptx
PramodKonidela
 
Vdi strategy
Vdi strategyVdi strategy
Vdi strategy
latheefca
 
VxRail_7.0.x_管理員手冊.en.zh-TW.docx
VxRail_7.0.x_管理員手冊.en.zh-TW.docxVxRail_7.0.x_管理員手冊.en.zh-TW.docx
VxRail_7.0.x_管理員手冊.en.zh-TW.docx
裝機安 Angelo
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
Sonatype
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh
Georgios Andrianakis
 
SX1302ベース LoRaWAN HAT for Rasberry Pi - PG1302 - コマンドライン・インストール編
SX1302ベース LoRaWAN HAT for Rasberry Pi - PG1302  - コマンドライン・インストール編SX1302ベース LoRaWAN HAT for Rasberry Pi - PG1302  - コマンドライン・インストール編
SX1302ベース LoRaWAN HAT for Rasberry Pi - PG1302 - コマンドライン・インストール編
CRI Japan, Inc.
 
Điều khiển vị trí PLC họ FX
Điều khiển vị trí PLC họ FXĐiều khiển vị trí PLC họ FX
Điều khiển vị trí PLC họ FX
quanglocbp
 
What’s New in VMware vSphere 7?
What’s New in VMware vSphere 7?What’s New in VMware vSphere 7?
What’s New in VMware vSphere 7?
Insight
 
DevOps is not enough - Embedding DevOps in a broader context
DevOps is not enough - Embedding DevOps in a broader contextDevOps is not enough - Embedding DevOps in a broader context
DevOps is not enough - Embedding DevOps in a broader context
Uwe Friedrichsen
 
Trend micro deep security
Trend micro deep securityTrend micro deep security
Trend micro deep security
Trend Micro
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
Chu-Siang Lai
 
Repository Management with JFrog Artifactory
Repository Management with JFrog ArtifactoryRepository Management with JFrog Artifactory
Repository Management with JFrog Artifactory
Stephen Chin
 
[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...
[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...
[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...
Obeo
 
Virtual Infrastructure Overview
Virtual Infrastructure OverviewVirtual Infrastructure Overview
Virtual Infrastructure Overview
valerian_ceaus
 
High Level Solution Document for VDI Project
High Level Solution Document for VDI ProjectHigh Level Solution Document for VDI Project
High Level Solution Document for VDI Project
Shahab Al Yamin Chawdhury
 
Azure DevOps - Version Controlling with Git
Azure DevOps - Version Controlling with GitAzure DevOps - Version Controlling with Git
Azure DevOps - Version Controlling with Git
Eng Teong Cheah
 
Tips For Building Private Cloud Architecture With Virtualization
Tips For Building Private Cloud Architecture With Virtualization Tips For Building Private Cloud Architecture With Virtualization
Tips For Building Private Cloud Architecture With Virtualization
Aventis Systems, Inc.
 

Similar to Debugging Microservices - QCON 2017 (20)

KrakenD API Gateway
KrakenD API GatewayKrakenD API Gateway
KrakenD API Gateway
Albert Lombarte
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
QAware GmbH
 
Advanced Full Stack Development: Scaling, Deployment, and Maintenance
Advanced Full Stack Development: Scaling, Deployment, and MaintenanceAdvanced Full Stack Development: Scaling, Deployment, and Maintenance
Advanced Full Stack Development: Scaling, Deployment, and Maintenance
saniakhan8105
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
Michelle Holley
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
DonghuKIM2
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
Oracle Korea
 
Scale and Load Testing of Micro-Service
Scale and Load Testing of Micro-ServiceScale and Load Testing of Micro-Service
Scale and Load Testing of Micro-Service
IRJET Journal
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
Rafik HARABI
 
Here Be Dragons: Security Maps of the Container New World
Here Be Dragons: Security Maps of the Container New WorldHere Be Dragons: Security Maps of the Container New World
Here Be Dragons: Security Maps of the Container New World
C4Media
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
Johannes Brännström
 
Dynatrace - Red Hat workshop : Monolith to Microservices
Dynatrace - Red Hat workshop : Monolith to MicroservicesDynatrace - Red Hat workshop : Monolith to Microservices
Dynatrace - Red Hat workshop : Monolith to Microservices
Steve Caron
 
Application cloudification with liberty and urban code deploy - UCD
Application cloudification with liberty and urban code deploy - UCDApplication cloudification with liberty and urban code deploy - UCD
Application cloudification with liberty and urban code deploy - UCD
Davide Veronese
 
Vijay Oscon
Vijay OsconVijay Oscon
Vijay Oscon
vijayrvr
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source
Nitesh Jadhav
 
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-orsCharacterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Lee Calcote
 
Microservices with Spring
Microservices with SpringMicroservices with Spring
Microservices with Spring
Carlos Cavero Barca
 
Putting Microservices on a Diet: with Istio!
Putting Microservices on a Diet: with Istio!Putting Microservices on a Diet: with Istio!
Putting Microservices on a Diet: with Istio!
QAware GmbH
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
Peter Bryzgalov
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewOpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
María Angélica Bracho
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
CIVEL Benoit
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
QAware GmbH
 
Advanced Full Stack Development: Scaling, Deployment, and Maintenance
Advanced Full Stack Development: Scaling, Deployment, and MaintenanceAdvanced Full Stack Development: Scaling, Deployment, and Maintenance
Advanced Full Stack Development: Scaling, Deployment, and Maintenance
saniakhan8105
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
Michelle Holley
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
DonghuKIM2
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
Oracle Korea
 
Scale and Load Testing of Micro-Service
Scale and Load Testing of Micro-ServiceScale and Load Testing of Micro-Service
Scale and Load Testing of Micro-Service
IRJET Journal
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
Rafik HARABI
 
Here Be Dragons: Security Maps of the Container New World
Here Be Dragons: Security Maps of the Container New WorldHere Be Dragons: Security Maps of the Container New World
Here Be Dragons: Security Maps of the Container New World
C4Media
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
Johannes Brännström
 
Dynatrace - Red Hat workshop : Monolith to Microservices
Dynatrace - Red Hat workshop : Monolith to MicroservicesDynatrace - Red Hat workshop : Monolith to Microservices
Dynatrace - Red Hat workshop : Monolith to Microservices
Steve Caron
 
Application cloudification with liberty and urban code deploy - UCD
Application cloudification with liberty and urban code deploy - UCDApplication cloudification with liberty and urban code deploy - UCD
Application cloudification with liberty and urban code deploy - UCD
Davide Veronese
 
Vijay Oscon
Vijay OsconVijay Oscon
Vijay Oscon
vijayrvr
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source
Nitesh Jadhav
 
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-orsCharacterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Lee Calcote
 
Putting Microservices on a Diet: with Istio!
Putting Microservices on a Diet: with Istio!Putting Microservices on a Diet: with Istio!
Putting Microservices on a Diet: with Istio!
QAware GmbH
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
Peter Bryzgalov
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewOpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
María Angélica Bracho
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
CIVEL Benoit
 
Ad

Recently uploaded (20)

Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
Ad

Debugging Microservices - QCON 2017

  • 2. About meIdit Levine Founder and CEO of solo.io @Idit_Levine @ilevine
  • 4. The problem A monolithic application consists of a single process An attached debugger allows viewing the complete state of the application during runtime A microservices application consists of potentially hundreds of processes Is it possible to get a complete view of the state of a such application?!
  • 8. OpenTracing A B E D C Edge service Unique ID → {context} {context} {context} {context} {context} 1. assign a unique identifier to each request at the edge service 2. store it in a context object, along with other metadata 3. propagate the context across process boundaries (in-band) 4. baggage is arbitrary K/V 5. capture timing, events, tags and collect them out of band (async) 6.re-assemble the call tree from the storage for the UI
  • 9. OpenTracing A B E D C Edge service Unique ID → {context} {context} {context} {context} {context} A B E C D TRACE SPANS
  • 10. OpenTracing Architecture spans - basic unit of timing and causality. can be tagged with key/value pairs. logs - structured data recorded on a span. span context - serializable format for linking spans across network boundaries. carries baggage, such as a request and client IDs. tracers - anything that plugs into the OpenTracing API to record information. zipKin, jaeger & lightstep. but also metrics (Prometheus) and logging.
  • 11. OpenTracing OpenTracing is a consistent, expressive, vendor-neutral APIs for popular platforms, OpenTracing makes it easy for developers to add (or switch) tracing implementations with an O(1) configuration change.
  • 13. OpenTracing uses logging - easy to output to any logging tool, even from OSS components. metrics/alerting - measure based on tags, span timing, log data. context propagation - use baggage to carry request and user ID’s, etc. critical path analysis - drill down into request latency in very high fidelity. system topology analysis - identify bottlenecks due to shared resources.
  • 14. OpenTracing limitations openTracing does not provide run-time debugging openTracing requires wrapping and changing the code no holistic view of the application state – can only see what was printed the process (repeatedly modify the application and test) is expansive Impossible to change variable values in runtime logging and printing results in performances overhead
  • 16. Squash brings the power of modern popular debuggers to developers of microservices apps that run on container orchestration platforms. Squash bridges between the orchestration platform (without changing it) and IDE. With Squash, you can: • Live debugging cross multi microservices • Debug container in a pod • Debug a service • Set breakpoints • Step through the code • View and modify values of variables • and more ...
  • 18. Squash Architecture Squash server: holds the information about the breakpoints for each application, orchestrates and controls the squash clients. Squash server deploys and runs on Kubernetes Squash client: deploys as daemon set on Kubernetes node. The client wraps as docker container, and also contains the binary of the debuggers. Squash User Interface: squash uses IDEs as its user interface. After installing the Squash extension, Squash commands are available in the IDE command palette. What vegetable scares all the bugs? Squash!” one of my 8-year old daughter's favorite riddles
  • 19. Squash Architecture: vs code extension vs code extension ➜ kubectl to present the user pod/container/debugger options vs code extension ➜ Squash server with debug config (pod/container/debugger /breakpoint) ➜ waits for debug session vs code extension ➜ connects to the debug server & transfers control to the native debug extension.
  • 20. Squash Architecture: Squash Server vs code extension ➜ Squash server Squash server ➜ relevant Squash client with debug config (pod/container/debugger /breakpoint) Squash server ➜ waits for debug session
  • 21. Squash Architecture: Squash Client Squash server ➜ Squash client Squash client ➜ container runtime interface (to obtain the container host pid) Squash client ➜ runs the debugger, attaches it to the process in the container, and sets the application breakpoints Squash client ➜ return debug session.
  • 24. We are looking for community help to add support for more debuggers, platforms and IDEs. Check out at github: https://github.com/solo-io/squash Squash: open source project
  • 26. Service MeshService mesh data plane: Touches every packet/request in the system. Responsible for service discovery, health checking, routing, load balancing, authentication/authorization, and observability. Service mesh control plane: Provides policy and configuration for all the running data planes in the mesh. Does not touch any packets/requests in the system. The control plane turns all of the data planes into a distributed system.
  • 27. Envoy – data planeOut of process architecture: developers to focus on business logic Modern C++11 code base: Fast and productive. L3/L4 filter architecture: Can be used for things other than HTTP (TCP proxy at its core) HTTP L7 filter architecture: Make it easy to plug in different functionality. HTTP/2 first! (Including gRPC and a nifty gRPC HTTP/1.1 bridge). Service discovery and active health checking. Advanced load balancing: Retry, timeouts, circuit breaking, rate limiting, shadowing, etc. Best in class observability: stats, logging, and tracing. Edge proxy: routing and TLS. The network should be transparent to applications. When network and application problems do occur it should be easy to determine the source of the problem.
  • 28. Istio – control planePilot: responsible for the lifecycle of Envoy instances deployed across the Istio service mesh. Pilot exposes APIs for service discovery, dynamic updates to load balancing pools and routing tables. Mixer: provides Precondition Checking (authentication, ACL checks and more), Quota Management and Telemetry Reporting. Istio-Auth enhance the security of microservices and their communication without requiring service code changes.
  • 30. The whole solutionStep 1: vs code extension ➜ Squash server creating a debug config (service & image) and wait for the debug session to connect. Step 2: envoy gets a curl request with squash header Step 3: ➜ envoy ask Squash server to debug itself and wait for the debug session. 1 2 3 4 5
  • 31. The whole solutionStep 4: Squash server ➜ Squash client Squash client ➜ container runtime interface (to obtain the container host pid) Squash client ➜ runs the debugger, attaches it to the process in the container, and sets the application breakpoints Squash client ➜ return debug session. Step 5: vs code extension ➜ connects to the debug server & transfers control to the native debug extension. envoy resume traffic to the app 1 2 3 4 5