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
Service Oriented Architecture Vs Monolithasaurus
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Joe Roberts
June 06, 2013
Programming
5
180
Service Oriented Architecture Vs Monolithasaurus
SOA
Joe Roberts
June 06, 2013
Tweet
Share
More Decks by Joe Roberts
See All by Joe Roberts
Discovering Go
zefer
0
83
Other Decks in Programming
See All in Programming
CSC307 Lecture 01
javiergs
PRO
0
690
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
110
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
270
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
280
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
AgentCoreとHuman in the Loop
har1101
5
230
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
450
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
MUSUBIXとは
nahisaho
0
130
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
960
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
250
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
130
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
250
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
51
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
340
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
84
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
220
Into the Great Unknown - MozCon
thekraken
40
2.3k
Transcript
service oriented architecture
None
service oriented architecture
None
None
None
Working memory
None
None
None
None
None
None
Fight back! - Solid OO techniques - Refactoring - Paying
back technical debt - Test driven development - Continuous integration
Easy to change
Service Oriented Architecture
SOA Build applications out of smaller ones
Services = HTTP =
REST + Message queues
REST
Message queues SQS, RabbitMQ, ActiveMQ, Resque, etc
OO principles - Single responsibility - Loose coupling - Cohesion
- Encapsulation
Real world? There are no rules
auth users front-end blog social reviews recommendations stock shipping payments
tags baskets history
Online record shop
None
Extract functionality into services
None
Reviews Recommendations Product info Stock levels
reviews-service REST + JSON
reviews-service GET /reviews/id POST /reviews PATCH /reviews/id DELETE /reviews/id
reviews-service GET /reviews/id { json }
reviews-service POST /reviews { json }
reviews-service { json } BONUS: Client-side rendering!
reviews-service application/json text/html
Isolated
Reusable
Interoperable
Agile
Scalable
Robust
Shipping
shipping-service
Shop Shipping-service Message queue { order details }
/api/shippings
Isolated Reusable Interoperable Agile Scalable Robust
None
hydra.io API for building & profiting from digital image apps
/uploads /products /orders /artworks image processing hydra.io
/uploads /products /orders /artworks image processing hydra.io
/uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3
hydra.io
/uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3
hydra.io
/uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3
message queue (resque) hydra.io
/uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3
message queue (resque) hydra.io
/uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3
message queue (resque) hydra.io
/uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3
message queue (resque) hydra.io
api.hydra.io proxy (HAProxy) api.hydra.io proxy (HAProxy) api.hydra.io proxy (HAProxy) api.hydra.io
proxy (HAProxy) /uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3 message queue (resque) hydra.io
api.hydra.io proxy (HAProxy) api.hydra.io proxy (HAProxy) api.hydra.io proxy (HAProxy) api.hydra.io
proxy (HAProxy) /uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3 message queue (resque)
admin tools api.hydra.io proxy (HAProxy) api.hydra.io proxy (HAProxy) api.hydra.io proxy
(HAProxy) api.hydra.io proxy (HAProxy) /uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3 message queue (resque)
admin tools api.hydra.io proxy (HAProxy) api.hydra.io proxy (HAProxy) api.hydra.io proxy
(HAProxy) api.hydra.io proxy (HAProxy) /uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3 message queue (resque)
admin tools backbone.js hydra gem api.hydra.io proxy (HAProxy) api.hydra.io proxy
(HAProxy) api.hydra.io proxy (HAProxy) api.hydra.io proxy (HAProxy) /uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3 message queue (resque)
Small, sharp tools
SOA is Lego for developers
Change is easy Change is hard
Prefactoring Draw pictures & simplify
When to extract into services? Mature functionality
Environments Staging
http://12factor.net/ Deployments
Caching at every layer Performance
- Test in isolation - Integration tests Testing
Everything Automate
Warning! Polyglot?
Reuse & Consistency
Nooo! Centralised Database
Keep checking the big picture
/api/v2/gorillas Versioning
Parallel HTTP requests
Small steps
Conclusions
1. Discipline pays
2. Minimise coupling
3. Small services
4. Reduce complexity
5. Check the big picture
START SMALL STAY SMALL
The future
None
None