マイクロサービス(Microservices)は、1つの大きなアプリを、小さく独立した複数のサービスの集まり として作る設計スタイルです。各サービスは、それぞれ役割を持ち、API を通じて連携します。
たとえばECサイトなら、「ユーザー管理」「商品カタログ」「注文」「決済」を、別々のサービスとして作ります。
flowchart TD GW[APIゲートウェイ] --> U[ユーザーサービス] GW --> P[商品サービス] GW --> O[注文サービス] GW --> Pay[決済サービス]
対になるのが、全体を1つのまとまりとして作る モノリス です。マイクロサービスの利点は、次のとおりです。
- 部分ごとに開発・更新できる … あるサービスの変更が、他に及びにくい。
- 個別にスケールできる … 混む部分(決済など)だけ増強できる。
- 技術を選べる … サービスごとに適した言語・DBを使える。
一方で、サービスが増えると、全体の運用は複雑になります。通信の管理、障害の切り分け、データの整合性などが難しくなり、コンテナ や Kubernetes、APIゲートウェイ といった仕組みが必要になります。規模と状況に応じて、モノリスと使い分けます。