Skip to content
Latchkey

サービス指向アーキテクチャ(SOA)とは何か?

サービス指向アーキテクチャ(SOA)は、標準的なネットワークプロトコル越しにビジネス能力を公開する再利用可能なサービスからシステムを構築します。

SOAはマイクロサービスに先行し、その核心的な直感を共有します。すなわち、システムをよく定義された契約を持つサービスに分解することです。古典的なSOAは、しばしば中央の統合層を経由する、企業全体での再利用を強調しました。マイクロサービスは、より小さなサービスとより少ない中央の配管で行われたSOAとして説明されることがあります。

定義となる考え方

SOAでは、多くのアプリケーションが再利用できるように、能力が正式な契約を持つサービスとして公開されます。重点はアプリケーションごとのコードではなく、組織全体にわたる共有された再利用可能なサービスに置かれます。

SOA対マイクロサービス

どちらもサービスに分解しますが、古典的なSOAはしばしば重量級のenterprise service busと粗く共有されたサービスに依存したのに対し、マイクロサービスはスマートなendpointとdumb pipeを備えた、小さく独立してデプロイ可能なサービスを好みます。マイクロサービスは、より軽量で分散化された子孫と見なすことができます。

共通の構成要素

  • 入力、出力、振る舞いを定義するサービス契約。
  • consumerがサービスを発見できるようにするregistry。
  • ルーティングと変換のための統合層またはbus。
  • チーム間の versioning と再利用を管理するガバナンス。

pipelineにとっての意味

各サービスは独自のbuildとdeployを必要とし、加えて、変更が共有サービスに依存する多くのconsumerを壊さないようにするためのコントラクト検証が必要です。再利用は互換性を壊すあらゆる変更の重みを高め、それがpipelineで強制されるコントラクトテストを不可欠なものにします。

ガバナンスのオーバーヘッド

SOAが約束する再利用は、versioningと互換性がガバナンスされている場合にのみ機能します。そのガバナンスは、より緩いマイクロサービス構成ならスキップするかもしれない、必須のpipeline gate、コントラクトregistry、承認ステップとしてしばしば現れます。

多くのサービスpipelineの実行

マイクロサービスと同様に、SOA群は多くの並行buildを意味します。warmな容量を備えたマネージドrunner(Latchkeyが提供するような)は、繁忙期にこれらの並列サービスpipelineが列に積み重なるのを防ぎます。

重要なポイント

  • SOAは、再利用可能で契約によって定義されたサービスからシステムを構成します。
  • より多くの中央統合とガバナンスを備えた、マイクロサービスの概念的な祖先です。
  • 共有サービスは互換性を壊す変更のコストを高めるため、コントラクトテストがより重要になります。

関連ガイド