Tech Book Talk Advent Calendar 2021 4 日目です。技術書、といえば色々とあると思いますが、トピックごとに把握をしていても、実際、広義のことであったり、俯瞰して把握する機会は手を動かさないとイメージがつきにくいことも多いと思います。比較的ライトに読むことのできる『絵で見てわかるマイクロサービスの仕組み』を読んだので紹介したいと思います。

はやりのマイクロサービスの仕組みについて図解で理解できる

マイクロサービスやサーバレス、 Kubernetes などワードごとで知っていても、「どういうものなのか何となく分かるけど、イメージつかない」ことが多いです。この本では、以下の要素が掲載されていました。

  • マイクロサービスを構成するために必要な要素(コンテナ化など)
  • 開発スタイルや最新の動向

コンテナ化などは Visual Studio Code を使っていると開発環境のコンテナ化などでもあるように、最近のトレンドのひとつであると感じます。ただ、運用はオンプレや仮想マシン上に構築が多いのではないでしょうか。
運用するにあたって、なぜそれらの技術が必要で、どのように運用するのが良いか、ということが一冊読めばある程度理解でき、かつ利用している技術のトピックが掲載され地得るので、これから構築する人にとっては良い本であると思いました。

利用している技術のトピックやメリット・デメリットも掲載されている

ブログ記事などでもそうですが、その技術を採用することによるメリットは書いてあっても、デメリットが書いていないこともあり、結果的に「この技術を採用したけど、この部分問題だよね」となることがあります。この本では、ベンダーロックインや運用保守の観点からのことも書かれてあり、どのアーキテクチャを採用するにしても、どこを諦めるか、ということが判断しやすいと感じました。

開発手法やサービス・システム間連携はこれからの開発に通ずる

この本では、マイクロサービス流に開発するために開発手法( GitOps や DevOps )やシステム間の連携をするためにどのような方法がベスト・プラクティスであるか、といったようなことも取り上げられていました。

しかし、新規サービスの場合はマイクロサービスで開発するよりも、従来の All in one なイメージで開発を行ったほうが良いパターンもあります。しかし、将来的にサービスの分割や共通化をすることを考えることもあるかと思いますが、今の不確実な世の中では仕様変更や見直しなども多く、結果としてそれが正しいとは言いにくい世の中です。

その中で、以下に手戻り少なく開発を行うための方策でやメリットが書かれています。また、それらと一緒にマイクロサービス化を行うことによって、結果的に時間の短縮や手戻り工数の削減などがわかりやすく図と一緒に解説されています。

これからの開発には必要なトピックがまとまっている

これからの開発を行っていく上で、どのようなサービス(システム)にしていくのか、チームを作っていくのかを考えていく中で、ツール面ややり方など幅広くわかりやすい説明と図がセットで書かれており、システム開発をこれから始めよう、という人にも非常に向いていると思いました。

また、システム運用をしている人で、今のサービス運用方法であったり、リプレースをしたいという人が知るには良い本ではないかと思います。