Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Scale-Oriented Architecture with Microservices
Search
John Sheehan
February 10, 2015
Technology
2
330
Scale-Oriented Architecture with Microservices
A look into how we've built Runscope using a microservice architecture.
John Sheehan
February 10, 2015
Tweet
Share
More Decks by John Sheehan
See All by John Sheehan
My Favorite API Tools (Other than Runscope)
johnsheehan
0
140
Crafting a Great Webhooks Experience
johnsheehan
2
490
Glue 2015: Microservices - More than just a buzzword.
johnsheehan
2
580
Crafting a Great Webhooks Experience
johnsheehan
0
160
The rise of distributed applications.
johnsheehan
2
410
Zen and the Art of API Maintenance
johnsheehan
2
2.3k
Building API integrations you can live with.
johnsheehan
0
98
Free API debugging and testing tools you should know about.
johnsheehan
5
820
Modern Tools for Modern Applications
johnsheehan
1
170
Other Decks in Technology
See All in Technology
Fediverse Discovery Providers overview
andypiper
0
170
プログラム検証入門
riru
6
880
GC24 Recap: Interface Internals
task4233
0
150
実務における脅威モデリングを考えよう
nikinusu
0
670
LINEヤフーのフロントエンド組織・体制の紹介
lycorp_recruit_jp
1
1.2k
OR学会2024秋_短期収益と将来のオフ方策評価性能を考慮したクーポン割当方策混合比の決定
recruitengineers
PRO
4
470
o1のAPIで実験してみたが 制限きつすぎて辛かった話
pharma_x_tech
0
210
突撃! 隣のAmazon Bedrockユーザー 〜YouはどうしてAWSで?〜
minorun365
PRO
3
390
社内の学びの場・コミュニティ形成とエンジニア同士のリレーションシップ構築/devreljapan2024
nishiuma
3
290
プロダクトエンジニアを支えるための開発生産性向上施策
tsukakei
0
150
OCI で始める!! Red Hat OpenShift / Get Started OpenShift on OCI
oracle4engineer
PRO
1
190
JEP 480: Structured Concurrency
aya_ebata
0
130
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
5
480
Bash Introduction
62gerente
608
210k
Robots, Beer and Maslow
schacon
PRO
157
8.2k
Principles of Awesome APIs and How to Build Them.
keavy
125
16k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
A better future with KSS
kneath
235
17k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
278
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
Statistics for Hackers
jakevdp
794
220k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
109
6.9k
Making the Leap to Tech Lead
cromwellryan
128
8.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.3k
Transcript
Scale-oriented Architecture with APIs John Sheehan Co-founder, CEO @Runscope
Scale-oriented Architecture with APIs MICROSERVICES
API DEBUGGING API MONITORING FOR TEAMS
30,000+ developers use Runscope
MICROSERVICES at Runscope
MICROSERVICES = SOA + DevOps
If you don't invest in INFRASTRUCTURE don't invest in MICROSERVICES
In the beginning...
runscope.com Runscope URLs Identity Request Vault api.runscope.com Eventador Calculon Courier
Mission Control Passageway go-proxy Warp Pipe go-radar Events Auth Service File Cabinet Script Processor Atlas Archivist Prometheus Billing Scorekeeper
Today 40+ internal services 9 engineers
How micro should services be?
MICROSERVICES GOALS
Scaling the Stack GOAL #1
Independent Deployability
None
None
None
None
7,789 Deployments in 2014 31+ Per work day
Service-level Isolation
Independent Scalability
Network Resiliency
Scaling the Team GOAL #2
Network Mindset
Isolate Breakage
Human Modularity
Uniform Interface
Developer Experience
Smart Client
• Service discovery • service://identity/... • Retry failed GETs •
Run HTTP requests asynchronously • Log with Runscope Traffic Inspector Smart Client
url = "https://ec2-23-212-199-23.us-west-2.amazonaws.com" resp = requests.get(url) if resp.ok: return resp.json()
else: # retry? return None def get_user(id): def main(): user = get_user(id) print user["name"]
class Identity def get_user(id): url = "service://identity/users/" + id resp
= smart_client.get(url) if resp.ok: return User(resp.json()) return AnonymousUser() from Identity import get_user def main(): user = get_user(id) print user.name Auto-locate service Smart retries
Smart Service
• Built-in healthcheck/heartbeat endpoints • Automatic, realm-aware service registry •
Common logging and metrics framework • Simplified dependency management Smart Service
Testing & Monitoring
API Testing API Monitoring Functionality Availability Performance Correctness In Development
In Production "Transactions" "Endpoints"
Runscope Radar Functionality Availability Performance Correctness Any Environment API Testing
& Monitoring Transactions & Endpoints
Try Runscope, free. runscope.com Stop by our table for your
free t-shirt!