🐕

SOAとマイクロサービスの違いってなんだっけ

2023/02/23に公開

SOAとは

サービス指向アーキテクチャー(Srtice Oriented Architecture)

➡️システムの機能単位を業務単位で決めていく設計/考え方

SOAは1つのシステムを「1つの大きな製品」ではなく「複数の部品(サービス)が集まったもの」として考えます。
基本的に「1つの処理に1つのサービス」として区切られており、個々の独立性は高く、サービス同士の依存性は低いのが特徴です。
この「1つの処理」とは、多くの場合ユーザー視点で区切りをつけます。たとえば「顧客への連絡」「在庫の確認」といった業務上の単位です。
これら個々のサービスは、外部から呼び出し可能であることが前提となります。多くはWebを媒介してアクセスできるように、標準的なインターフェースが設けられています。

https://ssaits.jp/promapedia/method/soa.html

マイクロサービスとは

ご存知の方も多いと思いますが、一応簡単に説明します。

マイクロサービスとは、規模が小さいサービス同士を組み合わせて連係させることで、ひとつの大きなアプリケーションやサイトの構築を行う手法。

SOAとマイクロサービスの違い

SOAとマイクロサービスの考え方ってなんだか少し似てますよね。
違いを見ていきましょう。

SOA マイクロサービス
サーバー 1つ、または複数 各サービス1サーバー
コンポーネント共有 する ほぼしない
サービスの粒度 中~大 小さめ
DB/データストレージ 共有 個別
通信プロトコル SOAP REST, gRPC

SOAとマイクロサービスの類似点

  • 特定の機能に特化した集合体である
  • 大規模なモノリシックサービスよりより規模が小さい

まとめ

SOAとマイクロサービスは似ているようで、異なるものです。
マイクロサービスとSOAのどちらが適しているかを判断する際には、それぞれの違いに注目して考慮してみてください。

Discussion