1章必要十分なマイクロサービス

大変な騒ぎだったな。一気に収拾がつかなくなった。

映画『俺たちニュースキャスター』

マイクロサービスの扱い方に飛び込む前に、マイクロサービスアーキテクチャとは何かについて共通の理解を持つことが重要だ。ここでは、日常的に目にする一般的な誤解や見落としがちなニュアンスを取り上げていく。本書の残りの部分を最大限に活用するには、マイクロサービスアーキテクチャについての確固たる知識基盤が必要だ。そのため、この章では、マイクロサービスアーキテクチャについて説明し、マイクロサービスがどのように発展してきたのかをざっと確認し(当然ながらモノリスについても見ていく)、マイクロサービスを扱う上でのいくつかの利点と課題を考察していく。

1.1 マイクロサービスとは

マイクロサービスとは、ビジネスドメインに基づいてモデル化された、独立してデプロイ可能なサービスだ。サービス同士はネットワークを介して相互に通信してシステムを形成する。このアーキテクチャの選択は、あなたが直面するであろう問題を解決するための多くの選択肢を提供する。マイクロサービスアーキテクチャとは、複数の連携しあうマイクロサービスによって成り立っているアーキテクチャということになる。

マイクロサービスは、サービス指向アーキテクチャ(Service-Oriented Architecture:SOA)の一種ながら、サービスの境界をどのように引くべきかについて確固とした考え方があり、独立してデプロイ可能であることが重要なアーキテクチャだ。そして、マイクロサービスは、何らかの技術に依存しないという利点も備えている。

技術的な観点から見ると、マイクロサービスとは、カプセル化されたビジネス機能を1つ以上のネットワークエンドポイントを介して公開するものだ。それらはネットワークを介して相互に通信しあい、分散システムを形成する。また、マイクロサービスはデータの保存や検索をカプセル化し、適切に定義されたインターフェイスを介してデータを公開する。つまり、データベースはサービス境界の内側に隠されることになる。 ...

Get モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイド now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.