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
150
Crafting a Great Webhooks Experience
johnsheehan
2
500
Glue 2015: Microservices - More than just a buzzword.
johnsheehan
2
630
Crafting a Great Webhooks Experience
johnsheehan
0
160
The rise of distributed applications.
johnsheehan
2
420
Zen and the Art of API Maintenance
johnsheehan
2
2.4k
Building API integrations you can live with.
johnsheehan
0
99
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
自社 200 記事を元に整理した読みやすいテックブログを書くための Tips 集
masakihirose
2
330
Formal Development of Operating Systems in Rust
riru
1
420
生成AI × 旅行 LLMを活用した旅行プラン生成・チャットボット
kominet_ava
0
160
Amazon Route 53, 待ちに待った TLSAレコードのサポート開始
kenichinakamura
0
170
.NET 最新アップデート ~ AI とクラウド時代のアプリモダナイゼーション
chack411
0
200
AWS Community Builderのススメ - みんなもCommunity Builderに応募しよう! -
smt7174
0
180
Bring Your Own Container: When Containers Turn the Key to EDR Bypass/byoc-avtokyo2024
tkmru
0
860
Godot Engineについて調べてみた
unsoluble_sugar
0
410
30分でわかる「リスクから学ぶKubernetesコンテナセキュリティ」/30min-k8s-container-sec
mochizuki875
3
450
When Windows Meets Kubernetes…
pichuang
0
310
Reactフレームワークプロダクトを モバイルアプリにして、もっと便利に。 ユーザに価値を届けよう。/React Framework with Capacitor
rdlabo
0
130
いま現場PMのあなたが、 経営と向き合うPMになるために 必要なこと、腹をくくること
hiro93n
9
7.7k
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
4 Signs Your Business is Dying
shpigford
182
22k
For a Future-Friendly Web
brad_frost
176
9.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
The Language of Interfaces
destraynor
155
24k
Documentation Writing (for coders)
carmenintech
67
4.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
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!