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章 まとめ:新しい始まり