🐕
SOAとマイクロサービスの違いってなんだっけ
SOAとは
サービス指向アーキテクチャー(Srtice Oriented Architecture)
➡️システムの機能単位を業務単位で決めていく設計/考え方
SOAは1つのシステムを「1つの大きな製品」ではなく「複数の部品(サービス)が集まったもの」として考えます。
基本的に「1つの処理に1つのサービス」として区切られており、個々の独立性は高く、サービス同士の依存性は低いのが特徴です。
この「1つの処理」とは、多くの場合ユーザー視点で区切りをつけます。たとえば「顧客への連絡」「在庫の確認」といった業務上の単位です。
これら個々のサービスは、外部から呼び出し可能であることが前提となります。多くはWebを媒介してアクセスできるように、標準的なインターフェースが設けられています。
マイクロサービスとは
ご存知の方も多いと思いますが、一応簡単に説明します。
マイクロサービスとは、規模が小さいサービス同士を組み合わせて連係させることで、ひとつの大きなアプリケーションやサイトの構築を行う手法。
SOAとマイクロサービスの違い
SOAとマイクロサービスの考え方ってなんだか少し似てますよね。
違いを見ていきましょう。
SOA | マイクロサービス | |
---|---|---|
サーバー | 1つ、または複数 | 各サービス1サーバー |
コンポーネント共有 | する | ほぼしない |
サービスの粒度 | 中~大 | 小さめ |
DB/データストレージ | 共有 | 個別 |
通信プロトコル | SOAP | REST, gRPC |
SOAとマイクロサービスの類似点
- 特定の機能に特化した集合体である
- 大規模なモノリシックサービスよりより規模が小さい
まとめ
SOAとマイクロサービスは似ているようで、異なるものです。
マイクロサービスとSOAのどちらが適しているかを判断する際には、それぞれの違いに注目して考慮してみてください。
Discussion