ishikawa_pro's memorandum

若手webエンジニアの備忘録です.

Swift Node.js Docker AWS etc...色々やります。

「分散システムデザインパターン」を読んだ

こんにちは。
最近はかなり日も短くなって寒くなり始めましたね。
今日は、ちょっと前に読み終わった「分散システムデザインパターン」についてメモです。

読んだモチベーション

この本を読もうと思ったきっかけは、最近 container 技術や k8s に関しての本を読んでいて、この本もよくおすすめに出ていたのがきっかけです。
あとは、普段の業務でマイクロサービスアーキテクチャであったり k8s や ECS を採用しているので、分散システムデザインについてもちゃんと知識をつけておきたいなと思っていたのもあります。

感想など

今回も電子版で読みましたが、物理本でA5サイズの200ページなのですぐに読めると思います。

本の構成はこんな感じでした。

1章 はじめに
第Ⅰ部 シングルノードパターン
2章 サイドカー
3章 アンバサダ
4章 アダプタ

第Ⅱ部 マルチノードパターン
5章 レプリカがロードバランスされたサービス
6章 シャーディングされたサービス
7章 スキャッタ・ギャザー
8章 ファンクションとイベント駆動処理
9章 オーナーシップの選出

第Ⅲ部 バッチ処理パターン
10章 ワークキューシステム
11章 イベント駆動バッチ処理
12章 協調的バッチ処理

13章 まとめ:新しい始まり?

第1部では、シングルノードでのデザインパターンを紹介して、2部ではマルチノードでのザインパターン、3部は分散システムでのバッチ処理デザインパターンについて紹介されていました。
まったく知らないデザインパターンとかはなかったですが、それぞれのパターンごとにサンプルもまじえて詳しく解説してあったのでとてもよかったです。
サンプルでは k8s を使っているので、k8s の基本的な部分の理解とかはあった方がより内容が理解しやすいかもしれないです。
個人的には、シャーディング、マスタの選出、ロックについてあまり詳しくなかったので、それらについて深くしることができたのはよかったです。

本自体は結構ページ数が少ないですが、内容としてはかなりよかったのでおすすめです。
ちょうどこの本を読み終わった頃に、たまたま業務でアプリケーションをシャーディングする機会があったのでめちゃくちゃ役に立ちました。
次は「データ指向アプリケーションデザイン」を読んでいるのですが、結構読みごたえあるので分けてブログにメモしていこうかなと思っています。