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
Управляем состоянием распределенных систем без боли
Search
Ilya Kaznacheev
September 26, 2022
Programming
0
70
Управляем состоянием распределенных систем без боли
Ilya Kaznacheev
September 26, 2022
Tweet
Share
More Decks by Ilya Kaznacheev
See All by Ilya Kaznacheev
Stateful Solutions: A Hands-On Guide to FSM in Golang
dreamworm
0
30
CQRS
dreamworm
0
10
Building a Cloud-Native PaaS
dreamworm
0
16
Distributed System State Management: When Transactions Are Long and SLA Is High
dreamworm
0
1
How To Create Saga-Free Distributed Transactions
dreamworm
0
38
Architectural decisions in building distributed systems
dreamworm
0
10
Распределенные транзакции без саг
dreamworm
0
82
Patterns of cloud scaling
dreamworm
0
15
CQRS в гостях и дома
dreamworm
0
14
Other Decks in Programming
See All in Programming
Let's learn code review
riofujimon
1
290
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
930
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
Elm 0.19.0 Changes
bkuhlmann
0
490
Anthropic Cookbook のおすすめレシピ
schroneko
7
960
新宿ダンジョンを可視化してみた
satoshi7190
2
260
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
23
15k
Rethinking UI building strategies @ SFI 2024
letelete
0
270
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
0
210
雑に思考を整理する技術と効能
konifar
60
29k
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
220
Git Rebase
bkuhlmann
11
1.6k
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1356
200k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
30
6k
Thoughts on Productivity
jonyablonski
58
3.8k
How GitHub (no longer) Works
holman
304
140k
Done Done
chrislema
178
15k
Statistics for Hackers
jakevdp
789
220k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
YesSQL, Process and Tooling at Scale
rocio
164
13k
Building Effective Engineering Teams - LeadDev
addyosmani
28
1.8k
Transcript
Управляем состоянием распределенных систем без боли Илья Казначеев
Илья Казначеев Tech Lead @ MTS Cloud Consulting Cloud Architect,
Основатель Golang Voronezh GDE on Cloud, GCP PCA, к.т.н. 2
как управлять распределенным состоянием? 3
как управлять распределенным состоянием? как построить K8s-as-a-Service? 4
roadmap 5 5
Чего мы хотели • SLA 99,99% (доступность + операции над
кластером) • быстрая реакция на инциденты • быстрая доставка новых фич • атомарность и консистентность в распределенных операциях • читабельный и поддерживаемый код 6
7
8
9
10
11
12
roadmap 13 13
roadmap 14 14
Domain Driven Design 15
16
17
18
roadmap 19 19
roadmap 20 20
21
22
23
24
Finite State Machine 25
26
27
28
29
30
31
32
33
34
35
36
roadmap 37 37
roadmap 38 38
обработка событий в рамках домена 39
40
41
42
43
44
45
46
обработка ошибки 47
48
49
50
roadmap 51 51
roadmap 52 52
обработка событий между доменами 53
54
55
56
57
58
59
60
61
roadmap 62 62
roadmap 63 63
распределенные транзакции 64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
roadmap 82 82
roadmap 83 83
CQRS 84
85
86
87
88
89
90
91
92
roadmap 93 93
roadmap 94 94
консистентность данных 95
96
97
98
outbox pattern 99
100
101
roadmap 102 102
roadmap 103 103
observability 104
105
106
roadmap 107 107
roadmap 108 108
Итоги • процессы отказоустойчивые • данные консистентные • выполнили SLA
109
Итоги • код читабельный • сложная логика понятна • процесс
целиком виден в коде • фичи добавлять быстро • тесты писать несложно 110
Итоги • скорость локализации ошибок сократилась на 1-2 порядка (до
минут) • отладка упростилась • обработка заявок ускорилась • разработчики довольны • тестировщики довольны • клиенты довольны 111
спасибо 112
Илья Казначеев
[email protected]
www.kaznacheev.me t.me/cloud_flight t.me/kaznacheev_feed 113