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
Building Composable Services
Search
Noah Kantrowitz
July 20, 2014
Technology
0
51
Building Composable Services
Noah Kantrowitz
July 20, 2014
Tweet
Share
More Decks by Noah Kantrowitz
See All by Noah Kantrowitz
What Python Can Learn From Other Languages
coderanger
0
41
What Python Can Learn From Other Languages (with notes)
coderanger
0
130
Swiss Army Django: Small Footprint ETL (with notes) - DjangoCon US
coderanger
0
190
Swiss Army Django: Small Footprint ETL - DjangoCon US
coderanger
0
45
How to look at space: PyCon AU
coderanger
0
87
Swiss Army Django: Small Footprint ETL
coderanger
0
73
Swiss Army Django: Small Footprint ETL (with notes)
coderanger
0
67
Minimum Viable Kubernetes
coderanger
0
31
Minimum Viable Kubernetes (with notes)
coderanger
0
390
Other Decks in Technology
See All in Technology
IAMポリシーのAllow/Denyについて、改めて理解する
smt7174
2
210
技術スタックだけじゃない、業務ドメイン知識のオンボーディングも同じくらいの量が必要な話
niftycorp
PRO
0
120
Global Databaseで実現するマルチリージョン自動切替とBlue/Greenデプロイ
j2yano
0
140
OPENLOGI Company Profile for engineer
hr01
1
20k
EDRの検知の仕組みと検知回避について
chayakonanaika
12
5.2k
2/18 Making Security Scale: メルカリが考えるセキュリティ戦略 - Coincheck x LayerX x Mercari
jsonf
0
240
OPENLOGI Company Profile
hr01
0
60k
Amazon Athenaから利用時のGlueのIcebergテーブルのメンテナンスについて
nayuts
0
100
サバイバルモード下でのエンジニアリングマネジメント
konifar
6
1.4k
AIエージェント入門
minorun365
PRO
32
19k
MIMEと文字コードの闇
hirachan
2
1.4k
IoTシステム開発の複雑さを低減するための統合的アーキテクチャ
kentaro
1
120
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
44
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
260
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
A better future with KSS
kneath
238
17k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
380
Building an army of robots
kneath
303
45k
Optimizing for Happiness
mojombo
377
70k
Embracing the Ebb and Flow
colly
84
4.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
51k
Transcript
Building Composable Services Noah Kantrowitz
What? Why? How? Perils? Press Start
What? World 1-1
What is a Function?
f(x, y) = z
What is Idempotence?
f(x) = f(f(x))
What is Composable?
f(x) g(x) f(g(x))
req_user(x) user_id(x) user_id(req_user(x))
post('http://login') get('http://search')
Why? World 1-2
Availability
Scaling
Testing
Logistics
How? World 1-3
Frameworks Storage Rich Data Discovery Resilience Containers Level Up Select
a Skill
µ-frameworks
Flask (Python) Sinatra (Ruby) Express (JavaScript)
ZeroMQ nanomsg ProtoBufs Cap'nProto
Data Storage (aka state)
AP Database
Cache is the enemy
Rich Data {id: me, cart: http...}
Hypermedia APIs
Service Discovery
Self-Organization
DNS nslookup('login')
ZooKeeper CP Database
Etcd Serf Consul Archaius
Resilience
Timeouts Idempotent Retries
post('chpw', nonce: 314)
Any service can be down
Async Messaging Queues
AMQP Kafka
Containers
Less RAM Less Problems
LXC Jails Zones Docker/Mesos
Security Isolation
Immutable Deployment
Logical Boundaries
Perils? World 1-4
Cascade Failures
Poor Visibility
Health & Metrics Central Logging Dashboards
Complex Deployments
Minimalist Self-organizing Fault-tolerant
Thank You
Noah Kantrowitz @kantrn coderanger.net Questions?