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
46
Building Composable Services
Noah Kantrowitz
July 20, 2014
Tweet
Share
More Decks by Noah Kantrowitz
See All by Noah Kantrowitz
Swiss Army Django: Small Footprint ETL (with notes) - DjangoCon US
coderanger
0
96
Swiss Army Django: Small Footprint ETL - DjangoCon US
coderanger
0
17
How to look at space: PyCon AU
coderanger
0
55
Swiss Army Django: Small Footprint ETL
coderanger
0
40
Swiss Army Django: Small Footprint ETL (with notes)
coderanger
0
39
Minimum Viable Kubernetes
coderanger
0
16
Minimum Viable Kubernetes (with notes)
coderanger
0
280
Applied Science Fiction: Operating a Research-Led Product (with notes)
coderanger
0
21
Applied Science Fiction: Operating a Research-Led Product
coderanger
0
43
Other Decks in Technology
See All in Technology
今さら聞けない!? AWSの生成AIサービス Amazon Bedrock入門!
minorun365
PRO
11
2.4k
Tohoku.Tech #1 「Cursorを使ったRaspberry Piの開発」by ねこまた
jun2882
0
250
社内共通ルールを値オブジェクトにして社内ライブラリとして運用してみた話
leveragestech
2
1.1k
あらゆる商品を扱う商品データベースを再設計した話 / product db re-architecture
rince
8
3.7k
関数型DDDの理論と実践:「決定を遅らせる」を先につくり、 ビジネスの機動力と価値をあげる
knih
2
480
オブジェクトのおしゃべり大失敗 メッセージングアンチパターン集 / messaging anti-pattern collection
ytake
0
330
マイクロサービス環境におけるDB戦略 in DMMプラットフォーム
pospome
11
3k
Ask-LLM論文紹介: How to Train Data-Efficient LLMs
s_ota
0
110
#51 “Empowering Azure Storage with RDMA”
cafenero_777
3
210
サービスメッシュ環境における OpenTelemetry 活用 / OpenTelemetry in Service Mesh
k6s4i53rx
2
840
中央集権体制からDataOpsへの転換 / centralized-to-dataops-transformation
pei0804
7
1.5k
TypeScript Quiz (Encraft #12 Frontend Quiz Night)
uhyo
4
410
Featured
See All Featured
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
For a Future-Friendly Web
brad_frost
170
8.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
219
21k
Statistics for Hackers
jakevdp
789
220k
The Pragmatic Product Professional
lauravandoore
24
5.7k
WebSockets: Embracing the real-time Web
robhawkes
59
6.9k
Scaling GitHub
holman
456
140k
How GitHub (no longer) Works
holman
301
140k
A designer walks into a library…
pauljervisheath
199
23k
BBQ
matthewcrist
78
8.7k
We Have a Design System, Now What?
morganepeng
42
6.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
19
1.6k
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?