Study「分散システムデザインパターン」
分散システムデザインパターンとありますが、分散システムに限らずシステムデザイン、ソフトウェアデザインの参考になります。
分散システム
デザインパターン
書籍
原題
Designing Distributed Systems
副題
「Patterns and Paradigms for Scale, Reliable Service」
副題
「コンテナを使ったスケーラブルなサービスの設計」
オライリー・ジャパン
著者
Brendan Burns
1章
「はじめに」
Donald Knuth
The Art of Computer Programming
Algorithm
gang of four
オブジェクト指向における再利用のためのデザインパターン
価値
「巨人の肩の上に立つ」
共通言語
第I部
シングルノードパターン
理由
オーナーシップ境界
リソースの分離
関心の分離
separation of concerns
アプリケーション
分割
複数コンテナ
2章
サイドカー
構成
アプリケーションコンテナ
コアロジック
サイドカーコンテナ
拡張
改善
モジュール化
再利用性
パラメータ化
状態
共有
3章
アンバサダ
外部
仲介
構成
アプリケーションコンテナ
アンバサダコンテナ
価値
モジュール化
再利用可能
組合せ
自由
4章
アダプタ
IF
吸収
構成
アプリケーションコンテナ
アダプタコンテナ
memo
RPS
request per second
第II部
マルチノードパターン
5章
レプリカがロードバランスされたサービス
水平方向
スケーラブル
全レプリカ
要求受信
処理実施
信頼性向上
冗長性実現
ステートレス
リクエスト数
スケーラビリティ
6章
シャーディングされたサービス
ステートフル
データサイズ
スケーラビリティ
7章
スキャッタ・ギャザー
scatter/gather pattern
木構造
処理時間
スケーラビリティ
リクエスト処理
並列化
演算
シャーディング
8章
ファンクションとイベント駆動処理
FaaS
Function as a Service
デコレータパターン
リクエストまたはレスポンスの変換
9章
オーナーシップの選出
役割割当
スケーラビリティ
第III部
バッチ処理パターン
10章
ワークキューシステム
11章
イベント駆動バッチ処理
ワークフローシステム
コピア
copier
フィルタ
filter
スプリッタ
splitter
シャーダ
sharder
マージャ
merger
パブリッシャ・サブスクライバ
publisher/subscriber
Kafka
Azure
EventFrid
Amazon
Simple Queue Service
12章
協調的バッチ処理
Reduceフェーズ
13章
まとめ:新しい始まり







