分散システムデザインパターンを読みました。
感想
分散システムのインフラ構成のデザインパターンの解説本です。 分散システムといっても難しいものではなくて、ロードバランスやシャーディングといったおなじみのアーキテクチャの粒度の話です。
本書でも言及してますがデザインパターンの最大の効果は共通言語の獲得で、本書はその効果が十分得られると思います。
内容はインフラ構成の汎用的なパターンと具体例です。 なぜかやたら詳しいキャッシュの説明なんかもあります。
全体的に図が非常にわかりづらいのが残念でした。
Kubernetes上で構築するワークキューの例なんかは、おーなるほど!Kubernetesだ!って感じで興味深かったです。 実際あんな感じで構築することはないと思いますが。
こういう人におすすめ
- イチからインフラ構成を設計したことがないバックエンド・インフラエンジニア
- 目次を見てもわからない項目があるバックエンド・インフラエンジニア
前者のインフラを設計したことがないエンジニアには最もリターンがあると思います。 本書を読んで何かができるようになるというわけではないですが「こういう汎用的な設計手法があるのか」という知識が手に入ります。 また、その汎用的な設計手法の名前もわかります。 今後インフラを構築するときには設計に説得力を持てるし、バックエンドを実装するときには多様な手段を選択肢として考えることができるようになると思います。
本書の内容はインフラ寄りの話ではありますが、バックエンドの実装にも密接に関わる話です。 なのでインフラをやらないバックエンドエンジニアでも、本書の知識を持っているか持っていないかでバックエンドの実装で取れる手段の幅が大きく変わってきます。 そういうエンジニアにはぜひ読んでほしい本です。
ある程度インフラの経験がある人にとっては、デザインパターンなだけあって「ああ、これ作ったことあるな」というものばかりです。 内容的には物足りないですが、共通言語を得るという意味では読む価値はあると思います。
全体を通してKubernetesが例として使われているのでKubernetesがわからないと例を理解するのが難しいかもしれません。 逆に、Kubernetesを使った構築手法を知ることができるかもしれません。
著者紹介
Brendan Burns
- Kubernetesの創始者
- GCP, Microsoft
- Twitter: @brendanburns
- GitHub: @brendanburns
松浦 隼人
- Yakst 管理人
- インフラエンジニア
- Twitter: @dblmkt
- GitHub: @doublemarket