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

サービス指向アーキテクチャ (SOA) は、独立したサービスの集合を中心にアプリケーションを設計するアーキテクチャ上のアプローチです。 サービスとは、顧客の注文の処理や在庫レポートの作成など、アクションを完了して特定の結果を提供するあらゆるビジネス機能です。 サービスを組み合わせて複合アプリケーションを作成し、エンド ユーザーに優れた機能を提供できます。

SOA アプローチの利点には、サービス コンポーネントの保守と更新が容易になることが挙げられます。各コンポーネントがより凝縮され、包含されているため、他のすべての要素に影響を与えることなく、コードを修正したり、要素を置き換えたりすることが容易になります。 ただし、サービス間の通信を最も効果的に実現する方法を決定するときに問題が発生します。 SOA は通常、サービス間の通信の中心となる手段としてエンタープライズ サービス バス (ESB) と関連付けられます。 ESB は変更にうまく対応できないことが多く、通常は複雑さが増し、サービスの開始と終了がわかりにくくなります。

SOA 対 マイクロサービス

SOA がマイクロサービスの現在の定義によく似ていると思うのは、あなただけではありません。 マイクロサービスもまた、独立して機能しながらも連携することを目的とした、小規模で自己完結型のサービスです。 しかし、SOA とマイクロサービスには重要な違いがあります。 注目すべき点がいくつかあります:

  • マイクロサービスは、機能上の理由から特定の粒度レベルで分離された、非常に細かい粒度のサービスです。 つまり、マイクロサービス アーキテクチャでは、データベース、アプリケーション サーバー、製品サポートなどのサービスが同じチームによってエンドツーエンドで管理されます。 一方、SOA はサービスを論理的に分離します。 ここでの違いは、論理的にグループ化されたサービスが機能間で共有されることです。 それは良さそうに聞こえます...サービスが失敗し、それに依存するすべての機能が影響を受けるまでは。 マイクロサービス アーキテクチャは、ビジネス サービスを独自の機能内に完全に含め、それらの機能を実行してビジネス価値を提供するために必要なすべてのものを、途中で何かを重複させる必要がある場合でも含めることで、この影響を排除するように設計されています。
  • マイクロサービスは完全に機能別に含まれているため、最終的に SOA を制限する通信フレームワーク、プロトコル、仕様に縛られることもありません。 代わりに、マイクロサービスは、各エンドポイント セット内にインテリジェンスを維持し、それらを接続するためのシンプルなファブリックを持つことに重点を置いています。 多くの場合、これは、内部システム アーキテクチャを収容し、REST などの軽量 Web プロトコルを使用してリクエストを各独立したマイクロサービスにルーティングする単一のAPI ゲートウェイを実装することによって最も効果的に実現されます。 さらに、各マイクロサービスは他のサービスの API を使用することが多いですが、ゲートウェイによりモバイル アプリがバックエンドにアクセスすることが防止されます。 このレベルの柔軟性は、Web サービス仕様の負担が重く、アプリケーションの接続に ESB に依存する SOA では決して実現できないものです。

多くの人がマイクロサービスは SOA が最終的に正しく実現されたものと考えていますが、実際にはこの 2 つを区別する重要な違いがいくつかあり、多くの点で、複雑なアプリケーションにとってマイクロサービスの方が効果的なアーキテクチャの選択肢となっています。 SOA とマイクロサービスの詳細については、無料の電子書籍「マイクロサービスの構築」をダウンロードしてください。 細粒度システムの設計

NGINX はどのように役立ちますか?

NGINX PlusNGINX は、 Dropbox、Netflix、Zynga などのトラフィック量の多い Web サイトで使用されているクラス最高の負荷分散ソリューションです。 世界中で3 億 5,000 万を超える Web サイトが、コンテンツを迅速かつ確実に安全に配信するために NGINX Plus と NGINX Open Source を活用しています。

ソフトウェア ベースのアプリケーション配信コントローラー(ADC) である NGINX Plus は、同等の機能を備えたハードウェア ソリューションよりもはるかに効果的かつ低コストでマイクロサービス アーキテクチャを実現するように設計されています。

  • NGINX Plusは、各マイクロサービスのパフォーマンスと信頼性を向上させる完全なアプリケーション配信および負荷分散ソリューションを提供します。
  • NGINX Plusは、APIゲートウェイとして、また各サービスのエンドポイントとしてスタックに組み込めるほど柔軟でスケーラブルです。
  • NGINX Plusは、マイクロサービスのアクションを最大限の速度と効率で完了するための高性能HTTPサーバーとして機能します。