SlideShare una empresa de Scribd logo
1 de 183
Descargar para leer sin conexión
No Microservice
Is An Island
Michele Titolo
Lead Software Engineer @ Capital One
Microservices Are A
Distributed System
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
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

Más contenido relacionado

Similar a No Microservice is an Island

Defect correction-Software Testing
Defect correction-Software TestingDefect correction-Software Testing
Defect correction-Software Testing
mrinmoy mukherjee
 
VistA Enhancements
VistA EnhancementsVistA Enhancements
VistA Enhancements
ckuyehar
 

Similar a No Microservice is an Island (20)

Defect correction-Software Testing
Defect correction-Software TestingDefect correction-Software Testing
Defect correction-Software Testing
 
Dev ops
Dev opsDev ops
Dev ops
 
Why DevOps Needs to Embrace Distributed Tracing
Why DevOps Needs to Embrace Distributed TracingWhy DevOps Needs to Embrace Distributed Tracing
Why DevOps Needs to Embrace Distributed Tracing
 
How Severe Is Your Bug?
How Severe Is Your Bug?How Severe Is Your Bug?
How Severe Is Your Bug?
 
VistA Enhancements
VistA EnhancementsVistA Enhancements
VistA Enhancements
 
Coradiant
CoradiantCoradiant
Coradiant
 
Pace IT - Troubleshooting OS part 1
Pace IT - Troubleshooting OS part 1Pace IT - Troubleshooting OS part 1
Pace IT - Troubleshooting OS part 1
 
Fundamental of testing why
Fundamental of testing whyFundamental of testing why
Fundamental of testing why
 
AppSight 5.0 Advanced Concepts Training
AppSight 5.0 Advanced Concepts TrainingAppSight 5.0 Advanced Concepts Training
AppSight 5.0 Advanced Concepts Training
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
 
DevOps
DevOpsDevOps
DevOps
 
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...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
 
bug-advocacy
bug-advocacybug-advocacy
bug-advocacy
 
Document Control in FDA Regulated Environments - When and how to automate
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
 
The Top 5 Skills Enterprise Admins Need to Know
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
 
3. introduction to software testing
3. introduction to software testing3. introduction to software testing
3. introduction to software testing
 
Observability vs APM vs Monitoring Comparison
Observability vs APM vs  Monitoring ComparisonObservability vs APM vs  Monitoring Comparison
Observability vs APM vs Monitoring Comparison
 
Automatic Assessment of Failure Recovery in Erlang Applications
Automatic Assessment of Failure Recovery in Erlang ApplicationsAutomatic Assessment of Failure Recovery in Erlang Applications
Automatic Assessment of Failure Recovery in Erlang Applications
 
Software Testing Interview Questions For Experienced
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
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
 

Más de Michele Titolo

Mastering the Project File (AltConf)
Mastering the Project File (AltConf)Mastering the Project File (AltConf)
Mastering the Project File (AltConf)
Michele Titolo
 

Más de Michele Titolo (20)

Writing Design Docs for Wide Audiences
Writing Design Docs for Wide AudiencesWriting Design Docs for Wide Audiences
Writing Design Docs for Wide Audiences
 
Beam Me Up: Voyaging into Big Data
Beam Me Up: Voyaging into Big DataBeam Me Up: Voyaging into Big Data
Beam Me Up: Voyaging into Big Data
 
APIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The UglyAPIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The Ugly
 
Tackling the Big, Impossible Project
Tackling the Big, Impossible ProjectTackling the Big, Impossible Project
Tackling the Big, Impossible Project
 
From iOS to Distributed Systems
From iOS to Distributed SystemsFrom iOS to Distributed Systems
From iOS to Distributed Systems
 
More than po: Debugging in LLDB
More than po: Debugging in LLDBMore than po: Debugging in LLDB
More than po: Debugging in LLDB
 
APIs for the Mobile World
APIs for the Mobile WorldAPIs for the Mobile World
APIs for the Mobile World
 
Swift Generics in Theory and Practice
Swift Generics in Theory and PracticeSwift Generics in Theory and Practice
Swift Generics in Theory and Practice
 
Protocols promised-land-2
Protocols promised-land-2Protocols promised-land-2
Protocols promised-land-2
 
Multitasking
MultitaskingMultitasking
Multitasking
 
Making friendly-microservices
Making friendly-microservicesMaking friendly-microservices
Making friendly-microservices
 
More Than po: Debugging in LLDB @ CocoaConf SJ 2015
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
 
The Worst Code
The Worst CodeThe Worst Code
The Worst Code
 
More than `po`: Debugging in lldb
More than `po`: Debugging in lldbMore than `po`: Debugging in lldb
More than `po`: Debugging in lldb
 
Can't Handle My Scale v2
Can't Handle My Scale v2Can't Handle My Scale v2
Can't Handle My Scale v2
 
Can't Handle My Scale
Can't Handle My ScaleCan't Handle My Scale
Can't Handle My Scale
 
Cocoa Design Patterns in Swift
Cocoa Design Patterns in SwiftCocoa Design Patterns in Swift
Cocoa Design Patterns in Swift
 
Mastering the Project File (AltConf)
Mastering the Project File (AltConf)Mastering the Project File (AltConf)
Mastering the Project File (AltConf)
 
APIs: The Ugly
APIs: The UglyAPIs: The Ugly
APIs: The Ugly
 
That's Not My Code!
That's Not My Code!That's Not My Code!
That's Not My Code!
 

Último

Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Último (20)

%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 

No Microservice is an Island