最近、APIに関する仕事をすることが多く、基礎知識を広げたり、理解があやふやな部分をしっかり理解するために読んだ。
マスタリングAPIアーキテクチャ モノリシックからマイクロサービスへとアーキテクチャを進化させるための実践的手法
目次
- 第1部 APIの設計・構築・テスト
- 1章 APIの設計・構築・仕様化
- 2章 APIのテスト
- 第2部 APIトラフィック管理
- 3章 APIゲートウェイ:外部トラフィック管理
- 4章 サービスメッシュ:サービス間トラフィック管理
- 第3部 APIの運用とセキュリティ
- 5章 APIの展開とリリース
- 6章 セキュリティ運用:脅威モデリング
- 7章 APIの認証と認可
- 第4部 APIを利用した進化的アーキテクチャ
- 8章 API駆動アーキテクチャへのアプリケーションの再設計
- 9章 クラウド環境への移行
- 10章 総括
感想
目次を見てもわかるように、API(社内向け、外部公開向け問わず)開発や、それを支えるための基盤となるアーキテクチャ設計に関して、必要な知識を網羅的に扱っている本だった。
各章では、その章で扱われているトピックに関する意思決定をする際に役立つ、ADR(Architecture Decision Record)のガイドラインについて記載されているのも良かった。
本書で扱われているナレッジやテクニックを「採用する or しない」「複数の選択肢の中から何を採用するか」を意思決定するにあたって、よく論点になるポイントや、推奨される意思決定がガイドラインとして記載されている。
最近自分はADRを書くことがとても多かったので、過去の自分の意思決定のプロセスや内容の答え合わせにもなったし、将来することになるかもしれない意思決定の予行演習にもなり、とても参考になった。
基本的には、要求や要件などの変化に応じて、アーキテクチャを徐々に適応させていく「進化的アーキテクチャ」の考え方をベースに解説が進んでいく。ケーススタディも、最初はシンプルな要件のAPIが、どんどん要求が増えたり状況が変化する中で、少しずつアーキテクチャを変更していく事例を見ていくことができる感じ。
最初はできる限りシンプルで、必要十分なアーキテクチャを保つ。不要な重厚長大な仕組みや複雑さは、それが本当に必要になってから導入する、という考えが本書を通してずっと一貫している。現実世界で長い時間運用していくアーキテクチャを設計する際にすごく大事な考え方だと思うし、こういう考え方がより多くの人に広がればいいなと思った。
個人的にはサービスメッシュを採用した経験がないから、興味が湧いたのと同時に、自分がこれを使う状況に直面することって今後あるんだろうか、という疑問も湧いたりした。
リファレンスとして、ふとした時に手に取って読めるようにしておきたい一冊。おすすめ。