Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Stateful systems in the time of orchestrators
Search
Danielle Lancashire
November 07, 2019
Technology
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Stateful systems in the time of orchestrators
Danielle Lancashire
November 07, 2019
Other Decks in Technology
See All in Technology
フロントエンドカンファレンス関西2026 - 速すぎるUIに、待ち時間を
teamlab
PRO
0
130
re:Invent初参加で変わったこと、2回目にやってみたいこと(JAWS-UG彩の国埼玉 #12)
mhrtech
2
220
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
260
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
440
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
570
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
2
1.2k
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
580
その Valkey 使いこなしていますか?
onk
PRO
5
1.5k
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
190
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
3
490
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
Featured
See All Featured
How to make the Groovebox
asonas
2
2.5k
So, you think you're a good person
axbom
PRO
2
2.2k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
How to train your dragon (web standard)
notwaldorf
96
6.9k
The agentic SEO stack - context over prompts
schlessera
0
970
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Believing is Seeing
oripsolob
1
240
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Odyssey Design
rkendrick25
PRO
2
870
Optimizing for Happiness
mojombo
378
71k
Writing Fast Ruby
sferik
630
63k
Transcript
Orchestrating Persistence Danielle Lancashire she/her @endocrimes @endocrimes 1
$ whoami @endocrimes 2
Lets talk about containers @endocrimes 3
they are ephemeral @endocrimes 4
but I want my state and to burn it too
! 5
if you liked it... you should've put a mount on
it? @endocrimes 6
Persistent State + Ephemeral Runtime @endocrimes 7
State is hard @endocrimes 8
It is possible! @endocrimes 9
It's still early @endocrimes 10
This is a talk about failure & reliability @endocrimes 11
@endocrimes 12
Cluster Orchestrators? • Nomad • Kubernetes • Mesos • CloudFoundry
@endocrimes 13
What do orchestrators do? • Map work to compute resources
• Coordinate deployments • Provide observability into workloads @endocrimes 14
What is Nomad? • Cluster Orchestrator • Pluggable drivers (containers/vms/plain
binaries) • Single Binary • Scalable (10k+ node deployments, with 5k+ scheduling decisions/second) @endocrimes 15
@endocrimes 16
CAP Theorem @endocrimes 17
@endocrimes 18
AP Clients @endocrimes 19
Container Storage Interface (CSI) @endocrimes 20
A Common API @endocrimes 21
Block Devices & File Storage @endocrimes 22
These plugins are external processes @endocrimes 23
Plugin Services • Identity • Controller • Node @endocrimes 24
Controller Service interacts with the control plane @endocrimes 25
from any node @endocrimes 26
to Provision, Attach, and Delete Volumes @endocrimes 27
and need tokens for the storage provider @endocrimes 28
Node Service performs local managegment @endocrimes 29
handles formatting, mounting, and local volume actions @endocrimes 30
must run on every node that can use volumes @endocrimes
31
and need special privileges @endocrimes 32
Architecture @endocrimes 33
@endocrimes 34
@endocrimes 35
@endocrimes 36
Lifecycle of a GCE Persistent Disk @endocrimes 37
@endocrimes 38
ControllerPublishVolume -> NodeStageVolume -> NodePublishVolume @endocrimes 39
@endocrimes 40
ControllerPublishVolume -> NodeStageVolume -> NodePublishVolume @endocrimes 41
ControllerPublishVolume -> NodeStageVolume -> NodePublishVolume @endocrimes 42
CSI doesn't solve everything @endocrimes 43
CSI is (currently) lowest common denominator @endocrimes 44
Topology @endocrimes 45
API Correctness @endocrimes 46
Failure Recovery is Hard @endocrimes 47
What does that mean? @endocrimes 48
Modes of failure • Human/Application • Node • Control Plane
• Storage Plugin @endocrimes 49
1. Application failure @endocrimes 50
@endocrimes
Rescheduling @endocrimes 52
Adding storage into the mix @endocrimes 53
3. Node Failure @endocrimes 54
@endocrimes 55
Duplicate Workloads @endocrimes 56
Exclusive Access @endocrimes 57
Safe Shutdown @endocrimes 58
like still providing write paths to data after a volume
has been detached. @endocrimes 59
Shut down tasks when losing connection? @endocrimes 60
3. Control Plane Failure @endocrimes 61
Conflicting Goals @endocrimes 62
Deferring to the operator @endocrimes 63
Running at the edge @endocrimes 64
Running in a data centre @endocrimes 65
Kubernetes StatefulSets @endocrimes 66
4. Plugin Failure @endocrimes 67
Controller Plugins @endocrimes 68
An operation that has no additional effects if invoked multiple
times with the same inputs. — Idempotent (adj) @endocrimes 69
Node Plugins @endocrimes 70
Crashing Plugins @endocrimes 71
Most apps weren't built for containers @endocrimes 72
We have to accommodate them @endocrimes 73
Operators @endocrimes 74
Extending the scheduler @endocrimes 75
Nothing quite gives you "run your own RDS" yet @endocrimes
76
But I want RDS! @endocrimes 77
Use RDS. @endocrimes 78
The Future @endocrimes 79
Thanks! ! twitter.com/endocrimes ✉
[email protected]
! Recommended Talk: • Preetha
Appan: Who guards the guardians? Designing for resilience in cluster orchestrators (Velocity NYC, 2018) @endocrimes 80