SOA (Service-Oriented Architecture) と マイクロサービス はどちらもシステムをサービスに分解しますが、粒度、データ所有権、およびサービス間の通信方法が異なります。
SOA (Service-Oriented Architecture) と マイクロサービス はどちらもシステムをサービスに分解しますが、粒度、データ所有権、およびサービス間の通信方法が異なります。
ジュニアからシニアまで、詳細な回答付きのIT面接質問ライブラリ。
寄付する| 側面 | SOA | マイクロサービス |
|---|
| 粒度 | Coarse-grained | Fine-grained |
| 通信 | 多くの場合ESB経由 | Lightweight (REST/gRPC/messaging) |
| データ | 頻繁に共有 | サービスごとのDatabase |
| ガバナンス | 中央集中型 | 分散型 |
| プロトコル | 多くの場合SOAP/XML | 通常HTTP/JSON、gRPC |
SOA ─▶ Service A ─▶ [ Enterprise Service Bus ] ─▶ Service B
(smart pipes, central orchestration, shared schemas)
Microservices ─▶ Service A ──(direct REST/gRPC/event)──▶ Service B
("smart endpoints, dumb pipes" — logic lives in services)
マイクロサービスは "smart endpoints, dumb pipes" の原則に従います: インテリジェンスはサービスに存在し、トランスポートはシンプルなままです。SOAはしばしばESBにロジックを集中させます。
ESB形式のボトルネックを再導入しないでください。重いセントラルバスはマイクロサービスをSOAに余分なステップで戻します。
違いは主に 分散化 についてです: マイクロサービスはデータ所有権とロジックを各サービスに押し出して、多くのSOAデプロイメントで問題となった中央のボトルネックを回避します。
これを理解することで、マイクロサービスラベルの下でSOAの結合を誤って再構築することを防ぎます。