Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Architecture with NoSQL: Experiences of a SaaS startup
lautis
August 21, 2012
Technology
4
560
Architecture with NoSQL: Experiences of a SaaS startup
Presentation at WICSA 2012 Industry day.
lautis
August 21, 2012
Tweet
Share
More Decks by lautis
See All by lautis
Real-Time with Flowdock
lautis
2
160
Other Decks in Technology
See All in Technology
How We Foster Reliability in Diversity
nari_ex
PRO
9
2.8k
LINE WORKS API 2.0について
mmclsntr
0
120
信頼性の階層の一段目を積み上げる/Monitoring Dashboard
shonansurvivors
0
180
失敗を経験したあなたへ〜建設的なインシデントの振り返りを行うために実践するべきこと〜
nobuakikikuchi
0
190
GitHub Actionsを使用してGoogle Play Consoleに自動アップロード
takenaga7
0
200
[SRE NEXT 2022]KaaS桶狭間の戦い 〜Yahoo! JAPANのSLI/SLOを用いた統合監視〜
srenext
0
350
Unity Package Managerで自作パッケージを配布する方法
yunoda
0
200
一人から始めるプロダクトSRE / How to start SRE in a product team, all by yourself
vtryo
4
2.7k
[AKIBA.AWS] それ、t2.micro選んで大丈夫?
tsukuboshi
0
210
LINEのData Platform室が実践する大規模分散環境のCapacity Planning
line_developers
PRO
0
560
Kubernetesの上に作る、統一されたマイクロサービス運用体験
tkuchiki
1
1.1k
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
oracle4engineer
PRO
0
120
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
447
30k
Designing for Performance
lara
596
63k
Typedesign – Prime Four
hannesfritz
33
1.3k
Fontdeck: Realign not Redesign
paulrobertlloyd
73
4.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
19
1.1k
Building Applications with DynamoDB
mza
83
4.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
37
3.2k
GraphQLの誤解/rethinking-graphql
sonatard
24
6.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
315
19k
Support Driven Design
roundedbygravity
86
8.5k
Fireside Chat
paigeccino
11
1.3k
Ruby is Unlike a Banana
tanoku
91
9.2k
Transcript
Architecture with NoSQL Experiences of a SaaS startup Ville Lautanala
None
•Single page JavaScript front-end •Thousands of concurrent users •Three replicated
databases •X servers on two continents •99.98% availability Facts
Streaming API MongoDB Redis + IRC, Twitter, RSS, and Email
integrations WebSocket API Message Backend PostgreSQL Rails App
MongoDB • Document-oriented • JSON based queries • Scalable reads
and writes • Replication and failover built-in • No transactions, no JOINs
SSD == Awesome
None
Chef
Manage servers with code 1. Edit recipes 2. knife upload
3. ??? 4. Profit!!!
Redis: in-memory DB •Key-value store •Data-structure server •Network accessible shared
memory •Non-blocking event-bus (pub/sub)
Flowdock message processing Redis Queue Redis Pubsub MongoDB Flowdock Backend
Redis is SPoF
ZooKeeper
ZooKeeper? •Highly-available key-value store •Enables distributed coordination •Listen for value
changes •Eventual consistency with quorum semantics
Node Manager Node Manager Redis Node Redis Node ZooKeeper Monitor
Update Redis Failover
Zoos are kept.
Chef ZooKeeper Configuration files Dynamic configuration variables Server installation Failover
handling Chef vs ZooKeeper
Network fail Flowdock Comcast Problems
Taking control of the routes 1. Submarine communications cable 2.
3rd party CDN/Load Balancers 3. AWS as SSL endpoint
This Is How We Roll •GeoDNS chooses endpoint •Encrypted VPN
mesh between servers •Servers near client act as SSL endpoint •Request processed near data
150ms faster page requests from U.S.
Conclusions •MongoDB a bit like MySQL 15 years ago •Some
NoSQL databases are suitable for distributed setups •Hardware and network issues needs to be addressed
Thanks!