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
Growing Distributed Systems
Search
Bryce "BonzoESC" Kerley
March 07, 2014
Programming
0
450
Growing Distributed Systems
Ruby on Ales, Mar. 7 2014
Bryce "BonzoESC" Kerley
March 07, 2014
Tweet
Share
More Decks by Bryce "BonzoESC" Kerley
See All by Bryce "BonzoESC" Kerley
Ruby in 2020
bryce
1
120
Rails and the Internet of Things
bryce
1
77
It's Not Ruby, But…
bryce
0
63
Ruby 2.5: What's New and What's Cool
bryce
0
74
docker for rubyists
bryce
0
120
Would You Like To Make A Game?
bryce
0
62
WebSockets and ActionCable
bryce
0
94
How I Learned to Stop Worrying and Like RSpec
bryce
0
81
How Do Computers Even Work?
bryce
1
210
Other Decks in Programming
See All in Programming
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
480
AI巻き込み型コードレビューのススメ
nealle
2
2.4k
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
1
340
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
210
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
140
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
120
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
220
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
330
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
2
180
浮動小数の比較について
kishikawakatsumi
0
360
CSC307 Lecture 08
javiergs
PRO
0
690
AHC061解説
shun_pi
0
260
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
75
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
Bash Introduction
62gerente
615
210k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
110
Six Lessons from altMBA
skipperchong
29
4.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
How GitHub (no longer) Works
holman
316
140k
Designing for Performance
lara
611
70k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
240
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
78
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
Transcript
Growing Distributed Systems
None
None
None
Hello Bryce Kerley @bonzoesc basho
Distributed Systems What even are they?
Distributed Systems
Distributed Systems Always Broken
None
Distributed Systems Light Cones
Mutual visibility Soldier Fires Sniper Fires
Distributed Systems A distributed system is one in which the
failure of a computer you didn’t even know existed can render your own computer unusable. Lamport, 1987
Distributed Systems •Rules and Theory •Inconsistency and Unavailability •Distributed Rails
Byzantine Generals No Right Answer
Criticality •Amazon S3, July 2008 •GitHub, Dec. 2012 •Northeast US,
2003
Murphy’s Law at Scale •Backblaze •Gears of War 2
CAP Theorem Consistency Availability Partition tolerance
Rules, Theory, and Practice Compromise
Distributed Systems •Rules and Theory •Inconsistency and Unavailability •Distributed Rails
CAP Theorem lose Consistency or Availability during Partitions
CP Systems Zookeeper
Unavailability Don’t fill requests
Unavailability
AP Systems Riak
Inconsistency Accept writes Perform reads
Inconsistency
Hybrid Multiple Stores
Hybrid Where It Counts
Hybrid Riak 2 Strong Consistency
Distributed Systems •Rules and Theory •Inconsistency and Unavailability •Distributed Rails
Distributed Rails You’re Already Distributed
Distributed Rails Rails
Distributed Rails Rails Web DB
Distributed Rails SQL Rules
Distributed Rails NoSQL No Rules
Distributed Rails Temptation
None
Distributed Rails Service Oriented Architecture
Service Oriented Extract Parts
Service Oriented Documented Protocols
Service Oriented Smaller Deployments
Testing Unit Tests
Testing Service Tests
Testing Acceptance Tests
Testing Refactoring [GitHub] with Science Wynn Netherland, Big Ruby, Feb.
2014
Offline Apps Latency Garbage Collection Packet loss Airplane rides Local
internet
Offline Apps Smarter clients
Offline Apps You’re Already Doing It
Offline Strategies Conflicts
Offline Strategies Operational Transform
Offline Strategies Git
Offline Strategies Vesper
Distributed Systems •Rules and Theory •Inconsistency and Unavailability •Distributed Rails
Ruby Works
Make Something Awesome
Grow When You Need To
Thanks Bryce Kerley @bonzoesc
[email protected]
http://bitly.com/roa-dist
Bonus Slides
Harvest & Yield Harvest: fraction of data Yield: probability of
success
None
NoSQL and Rails SQL ACID
NoSQL and Rails Atomicity Consistency Isolation Durability
NoSQL and Rails NoSQL BASE
NoSQL and Rails Basically Available Soft-state Eventually consistent
Why Extract? Break coupling Easier deploys Simpler responsibility Forced abstraction
Prevent introspection Standardization Flexible backends
Offline Libraries Breeze PouchDB Lawnchair
Must Watch Jeff Hodges “Practicalities of Productionizing Distributed Systems” youtu.be/BKqgGpAOv1w