No Microservice is an Island

Michele Titolo
Michele TitoloComputers ¯\_(ツ)_/¯ at Square
No Microservice
Is An Island
Michele Titolo
Lead Software Engineer @ Capital One
Microservices Are A
Distributed System
No Microservice is an Island
No Microservice is an Island
Something
WILL PROBABLY
GO
WRONG
How Do You Figure
Out What’s Wrong?
How Do You Deploy
A Fix?
New Challenges
Microservices Are
More Than
Application Size
Failure Points++
Microservices Need
An Ecosystem
Apps Must
Contribute
Infrastructure Must
Contribute
Otherwise You’ll
Play Catch Up
Three Biggest
Challenges
Deployment
Scaling
Debugging
Create A Foundation
Deploying
Microservices
Characteristics
Small Releases
Frequent Releases
Consistent Releases
Limit Special Snowflakes
Top-Notch Tooling
Automate Every
Aspect
🙅
✋
Strategies
Staged Deployments
Canary
R
O
U
T
E
R
Blue/Green
Red/Black
R
O
U
T
E
R
R
O
U
T
E
R
R
O
U
T
E
R
Automatic Rollbacks
How Do You Know A
Deployment Is
Successful?
What Features Or
Tools Need To Exist?
App
- Tests Pass
- Health Check
- Dependency/Secret
Injection
Robust Tests
Unit And Integration
Frequent Deployments
➡
Frequent Testing
Standardized Health
Check
Consume Dependencies
And Secrets
Dependencies i.e.
URL to database
Secrets i.e.
username/password to
DB
- Tests Pass
- Health Check
- Dependency/Secret
Injection
System
Aggregate Health Checks
Show System State
Successful Deployment?
Define “Successful”
Proactive
Report
Bots
Recap
Once a Deployment
Is Finished,
Everything’s Done?
Distributed Systems 

Are Constantly
Changing
Scaling Microservices
App Has More Or
Less Load
Health Tracked
- RAM
- CPU
- Latency
- Requests per second
Custom Metrics
How Do
Microservices Scale?
Automation
Smart System
Trigger Scaling
Scale Up
Scale Down
Scale Up
Scale Down
Deploy New Instances
Monitor Health Checks
Send Traffic To New
Instances
Scale Up
Scale Down
Instances Aren’t Being
Used
Stop Routing Traffic
Gracefully Shutdown
Disconnect
Report Progress
Ultimately Get Removed
Routing Traffic?
Infrastructure++
Load Balancer
Service Discovery
Load Balancer
Service Discovery
All Cloud Providers Have
One Built-In
Attach To Scaling Group
New Instances Registered
Conversely, Instances
Going Away Are Removed
Load Balancer
Service Discovery
Routes To Healthy
Instances
Apps Register
Route Via Convention
A B
Service
Discovery
GET /b/foo GET /foo
A 🤢
Service
Discovery
GET /b/foo
🚫
Knows Health, Can
Trigger Scaling
Automation
Scaling Only Solves
So Many Problems
Debugging
Microservices
First You Need To
Know There’s A
Problem
How?
Alerts
What Qualifies As A
Problem?
Varies Per App
RAM, CPU, Latency
Less Obvious, Too
Key Performance
Indicator
Alerts Are For Known
Issues
Dashboards
How Do You Debug
An Issue?
First: Check Problematic
App
Pretend Ssh Doesn’t Exist
Next Best Thing:
Logs
Log Collection And
Aggregation
Configurable Log Levels
Inspect Logs
Non-Trivial Issue
➡
Isolate
Avoid Cascading
Failures
How Do You Isolate
A Service?
Identify
Isolate
Identify
Isolate
Q: What Parts Of The
System Depend On
Another?
Request Tracing
No Microservice is an Island
Unique Request Ids
Best As Overlay
Opentracing
Add Header Manually
Identify
Isolate
Circuit Breaking
Let App Recover
App Or System
Fail Gracefully
Deploy A Fix
Slowly Start Sending
Traffic
Can Be Done
Automatically
Built-In Load Balancers
Service Discovery
Otherwise Update
Manually
Everything Returns
To Normal
What If The Problem
Isn’t One Of Your
Apps?
Do You Have An
External Dependency?
No Access To Logs
No Access To Source
You Can’t Deploy A Fix
Fewer Tools
Damage Control
How Limit Impact?
Status Page
Monitor The Status Page
If Status Page Shows No
Issue, Raise It
Keeping Your System
Healthy
What’s Inside Your
Control?
Can’t See Logs
Request Tracing
Circuit Breaking
Degrade Gracefully
Sometimes
Infrastructure Fails
Ex: S3 Outage In 2017
Circuit Breaking
To Recap
Debugging Internal
Apps
Log, Trace, Circuit Break
Debugging External
Apps
Trace And Circuit Break
One Thing All Of
These Have In
Common…
Metrics
Monitoring
Gain Insights Into
Distributed System
Not Free
Apps Updated
Health Checks
Infrastructure
Updated
Monitor Health
Checks
Gather Information
Create Confidence
That System Is
Healthy
Creating An
Ecosystem For
Microservices Is
Doable
Requires More
Metrics
Requires Smarter
Infrastructure
Infrastructure won’t evolve on its
own; people need to change their
behavior and fundamentally think
of what it takes to run an
application a different way.
Nova, Kris and Garrison, Justin (2017).
Cloud Native Infrastructure. O’Reilley.
Build Software
To
Manage Software
Build Software To
Support A Healthy
Ecosystem
Thank You!
@micheletitolo
• https://unsplash.com/photos/-lp8sTmF9HA
• https://unsplash.com/photos/Rfflri94rs8
• https://unsplash.com/photos/
B87VRCWmpqU
• https://unsplash.com/photos/aLDuLRjZknE
• https://unsplash.com/photos/xal6tVZRCGc
• https://unsplash.com/photos/
VRAxb_gNjQQ
Photo Credits
1 of 183

Recommended

Freeware malwale removal software by
Freeware malwale removal softwareFreeware malwale removal software
Freeware malwale removal softwarecharliedavibrown
146 views5 slides
Agile, DevOps, & Hardware by
Agile, DevOps, & HardwareAgile, DevOps, & Hardware
Agile, DevOps, & HardwareDavid Evans
128 views43 slides
The Canary in the Coal Mine: Create an Early Warning Tool to Help Your Testing by
The Canary in the Coal Mine: Create an Early Warning Tool to Help Your TestingThe Canary in the Coal Mine: Create an Early Warning Tool to Help Your Testing
The Canary in the Coal Mine: Create an Early Warning Tool to Help Your TestingJosiah Renaudin
156 views26 slides
Fundamentals of testing (what is testing necessary) by
Fundamentals of testing (what is testing necessary)Fundamentals of testing (what is testing necessary)
Fundamentals of testing (what is testing necessary)helfa safitri
68 views12 slides
fundamentals of testing (Fundamental of testing why) by
fundamentals of testing (Fundamental of testing why)fundamentals of testing (Fundamental of testing why)
fundamentals of testing (Fundamental of testing why)diana fitri, S.Kom
16 views11 slides
Creepy crawler system by
Creepy crawler systemCreepy crawler system
Creepy crawler systemgunjarisrujana14
303 views2 slides

More Related Content

Similar to No Microservice is an Island

Defect correction-Software Testing by
Defect correction-Software TestingDefect correction-Software Testing
Defect correction-Software Testingmrinmoy mukherjee
2.2K views17 slides
Dev ops by
Dev opsDev ops
Dev opsEslam El Husseiny
1.1K views66 slides
Why DevOps Needs to Embrace Distributed Tracing by
Why DevOps Needs to Embrace Distributed TracingWhy DevOps Needs to Embrace Distributed Tracing
Why DevOps Needs to Embrace Distributed TracingDevOps.com
103 views52 slides
How Severe Is Your Bug? by
How Severe Is Your Bug?How Severe Is Your Bug?
How Severe Is Your Bug?BugRaptors
261 views10 slides
VistA Enhancements by
VistA EnhancementsVistA Enhancements
VistA Enhancementsckuyehar
298 views35 slides
Coradiant by
CoradiantCoradiant
Coradiantgigamon
1.1K views64 slides

Similar to No Microservice is an Island(20)

Why DevOps Needs to Embrace Distributed Tracing by DevOps.com
Why DevOps Needs to Embrace Distributed TracingWhy DevOps Needs to Embrace Distributed Tracing
Why DevOps Needs to Embrace Distributed Tracing
DevOps.com103 views
How Severe Is Your Bug? by BugRaptors
How Severe Is Your Bug?How Severe Is Your Bug?
How Severe Is Your Bug?
BugRaptors261 views
VistA Enhancements by ckuyehar
VistA EnhancementsVistA Enhancements
VistA Enhancements
ckuyehar298 views
Coradiant by gigamon
CoradiantCoradiant
Coradiant
gigamon1.1K views
AppSight 5.0 Advanced Concepts Training by Damian Rochman
AppSight 5.0 Advanced Concepts TrainingAppSight 5.0 Advanced Concepts Training
AppSight 5.0 Advanced Concepts Training
Damian Rochman1.6K views
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip... by Gene Kim
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
Gene Kim5.8K views
Document Control in FDA Regulated Environments - When and how to automate by Jeff Thomas
Document Control in FDA Regulated Environments - When and how to automateDocument Control in FDA Regulated Environments - When and how to automate
Document Control in FDA Regulated Environments - When and how to automate
Jeff Thomas1.1K views
The Top 5 Skills Enterprise Admins Need to Know by Atlassian
The Top 5 Skills Enterprise Admins Need to KnowThe Top 5 Skills Enterprise Admins Need to Know
The Top 5 Skills Enterprise Admins Need to Know
Atlassian6.7K views
Observability vs APM vs Monitoring Comparison by jeetendra mandal
Observability vs APM vs  Monitoring ComparisonObservability vs APM vs  Monitoring Comparison
Observability vs APM vs Monitoring Comparison
jeetendra mandal441 views
Automatic Assessment of Failure Recovery in Erlang Applications by Jan Henry Nystrom
Automatic Assessment of Failure Recovery in Erlang ApplicationsAutomatic Assessment of Failure Recovery in Erlang Applications
Automatic Assessment of Failure Recovery in Erlang Applications
Jan Henry Nystrom486 views
Software Testing Interview Questions For Experienced by zynofustechnology
Software Testing Interview Questions For ExperiencedSoftware Testing Interview Questions For Experienced
Software Testing Interview Questions For Experienced
Starting Your DevOps Journey – Practical Tips for Ops by Dynatrace
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
Dynatrace1.6K views

More from Michele Titolo

Writing Design Docs for Wide Audiences by
Writing Design Docs for Wide AudiencesWriting Design Docs for Wide Audiences
Writing Design Docs for Wide AudiencesMichele Titolo
94 views43 slides
Beam Me Up: Voyaging into Big Data by
Beam Me Up: Voyaging into Big DataBeam Me Up: Voyaging into Big Data
Beam Me Up: Voyaging into Big DataMichele Titolo
382 views90 slides
APIs: The Good, The Bad, The Ugly by
APIs: The Good, The Bad, The UglyAPIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The UglyMichele Titolo
155 views98 slides
Tackling the Big, Impossible Project by
Tackling the Big, Impossible ProjectTackling the Big, Impossible Project
Tackling the Big, Impossible ProjectMichele Titolo
534 views39 slides
From iOS to Distributed Systems by
From iOS to Distributed SystemsFrom iOS to Distributed Systems
From iOS to Distributed SystemsMichele Titolo
944 views101 slides
More than po: Debugging in LLDB by
More than po: Debugging in LLDBMore than po: Debugging in LLDB
More than po: Debugging in LLDBMichele Titolo
2.6K views138 slides

More from Michele Titolo(20)

Writing Design Docs for Wide Audiences by Michele Titolo
Writing Design Docs for Wide AudiencesWriting Design Docs for Wide Audiences
Writing Design Docs for Wide Audiences
Michele Titolo94 views
Beam Me Up: Voyaging into Big Data by Michele Titolo
Beam Me Up: Voyaging into Big DataBeam Me Up: Voyaging into Big Data
Beam Me Up: Voyaging into Big Data
Michele Titolo382 views
APIs: The Good, The Bad, The Ugly by Michele Titolo
APIs: The Good, The Bad, The UglyAPIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The Ugly
Michele Titolo155 views
Tackling the Big, Impossible Project by Michele Titolo
Tackling the Big, Impossible ProjectTackling the Big, Impossible Project
Tackling the Big, Impossible Project
Michele Titolo534 views
From iOS to Distributed Systems by Michele Titolo
From iOS to Distributed SystemsFrom iOS to Distributed Systems
From iOS to Distributed Systems
Michele Titolo944 views
More than po: Debugging in LLDB by Michele Titolo
More than po: Debugging in LLDBMore than po: Debugging in LLDB
More than po: Debugging in LLDB
Michele Titolo2.6K views
Swift Generics in Theory and Practice by Michele Titolo
Swift Generics in Theory and PracticeSwift Generics in Theory and Practice
Swift Generics in Theory and Practice
Michele Titolo1.8K views
Making friendly-microservices by Michele Titolo
Making friendly-microservicesMaking friendly-microservices
Making friendly-microservices
Michele Titolo1.1K views
More Than po: Debugging in LLDB @ CocoaConf SJ 2015 by Michele Titolo
More Than po: Debugging in LLDB @ CocoaConf SJ 2015More Than po: Debugging in LLDB @ CocoaConf SJ 2015
More Than po: Debugging in LLDB @ CocoaConf SJ 2015
Michele Titolo761 views
More than `po`: Debugging in lldb by Michele Titolo
More than `po`: Debugging in lldbMore than `po`: Debugging in lldb
More than `po`: Debugging in lldb
Michele Titolo9.1K views
Cocoa Design Patterns in Swift by Michele Titolo
Cocoa Design Patterns in SwiftCocoa Design Patterns in Swift
Cocoa Design Patterns in Swift
Michele Titolo9.1K views
Mastering the Project File (AltConf) by Michele Titolo
Mastering the Project File (AltConf)Mastering the Project File (AltConf)
Mastering the Project File (AltConf)
Michele Titolo1.8K views

Recently uploaded

2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx by
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptxanimuscrm
14 views19 slides
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... by
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra....NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...Marc Müller
38 views62 slides
Keep by
KeepKeep
KeepGeniusee
75 views10 slides
EV Charging App Case by
EV Charging App Case EV Charging App Case
EV Charging App Case iCoderz Solutions
5 views1 slide
Sprint 226 by
Sprint 226Sprint 226
Sprint 226ManageIQ
5 views18 slides
Myths and Facts About Hospice Care: Busting Common Misconceptions by
Myths and Facts About Hospice Care: Busting Common MisconceptionsMyths and Facts About Hospice Care: Busting Common Misconceptions
Myths and Facts About Hospice Care: Busting Common MisconceptionsCare Coordinations
5 views1 slide

Recently uploaded(20)

2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx by animuscrm
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
animuscrm14 views
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... by Marc Müller
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra....NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
Marc Müller38 views
Sprint 226 by ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ5 views
Myths and Facts About Hospice Care: Busting Common Misconceptions by Care Coordinations
Myths and Facts About Hospice Care: Busting Common MisconceptionsMyths and Facts About Hospice Care: Busting Common Misconceptions
Myths and Facts About Hospice Care: Busting Common Misconceptions
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols by Deltares
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - DolsDSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
Deltares7 views
DSD-INT 2023 The Danube Hazardous Substances Model - Kovacs by Deltares
DSD-INT 2023 The Danube Hazardous Substances Model - KovacsDSD-INT 2023 The Danube Hazardous Substances Model - Kovacs
DSD-INT 2023 The Danube Hazardous Substances Model - Kovacs
Deltares8 views
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... by Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri795 views
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the... by Deltares
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
Deltares6 views
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action by Márton Kodok
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action
Márton Kodok5 views
DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h... by Deltares
DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h...DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h...
DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h...
Deltares5 views
Advanced API Mocking Techniques by Dimpy Adhikary
Advanced API Mocking TechniquesAdvanced API Mocking Techniques
Advanced API Mocking Techniques
Dimpy Adhikary19 views
DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut... by Deltares
DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut...DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut...
DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut...
Deltares7 views
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... by TomHalpin9
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
TomHalpin95 views
Navigating container technology for enhanced security by Niklas Saari by Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy13 views

No Microservice is an Island