サービス ガバナンス プラットフォーム: SOA とマイクロサービス アーキテクチャの比較と相違点

1. シーン紹介

Alipayのホームページを開いて残高を見ると、総資産、昨日の収入、累計収入などが表示されます。このページに表示される情報がさまざまなシステム/アプリケーションから取得されたものである場合、当社はさまざまなインターフェイスを通じてデータを表示します。これらのデータをフロントエンド ページに表示したい場合、どのように表示すればよいでしょうか?

  • この場合、クライアントが 6 つの異なるアプリケーション/システムと 1 つずつ通信してデータの表示を完了することは不可能です。代わりに、6 つのアプリケーション/システムが相互に通信して呼び出しを完了し、最終的にクライアントは、各アプリケーション/システムと通信するのではなく、インターフェイスを呼び出してデータを取得するだけで済みます。
  • タオバオなどの電子商取引システムでは、ホームページ情報、商品情報、個人情報、プッシュ情報など、多くのデータ情報をホームページ上に表示します。ホームページに表示されるデータが 100 の異なるアプリケーション/システムからのものである場合、上記のアーキテクチャを通じて、バックエンドで数百、さらには数千の通信インタラクションが発生し、バックエンドの構造は非常に大規模かつ複雑になります。したがって、このアーキテクチャでは、上記の構造にいくつかの調整を加える必要があるため、SOA アーキテクチャを導入しました。

ここに画像の説明を挿入します
ここに画像の説明を挿入します

2. サービス指向アーキテクチャ SOA

SOA(正式名称:Service Oriented Architecture)とは、中国語で「サービス指向アーキテクチャ」を意味し、サービスソリューションではなく、アーキテクチャモデルまたは設計手法として理解していただけます。

  • これには複数のサービスが含まれており、相互依存または通信メカニズムを通じて相互に通信し、最終的に一連の機能を提供します。通常、サービスは独立した形式でオペレーティング システム プロセス内に存在します。各サービスはネットワーク経由で呼び出されます。
  • 各アプリケーション間の通信を全て排除し、途中にESBエンタープライズバスを導入し、各サービスはESBとの通信のみを行えばよく、この際、各アプリケーション間のやり取りがより明確になり、ビジネスアーキテクチャ/ロジック等が明確になります。も明らかになります。当初は乱雑で計画性のなかったシステムが、計画的で管理しやすいシステムに変わりましたが、その過程で最も大きな変化となったのは、ESB エンタープライズ バスの導入でした。
    ここに画像の説明を挿入します

ここに画像の説明を挿入します

  • サービスバス、サービスプロバイダー、ビジネスプロセス再構築、サービスアドレッシング、分散トランザクションモデル
    ここに画像の説明を挿入します

3. マイクロサービスアーキテクチャ

マイクロサービス アーキテクチャは実際には SOA アーキテクチャに似ており、マイクロサービスは SOA を昇華したものです。マイクロサービス アーキテクチャで強調される重要な点の 1 つは、「ビジネスは完全にコンポーネント化され、サービス指向である必要がある」ということです。元の単一のビジネス システムは、独立して開発、設計、実行できる複数の小さなアプリケーションに分割されます。このような小さなアプリケーションが相互に連携して通信し、相互作用と統合を完了するのが、マイクロサービス アーキテクチャです。

  • コンポーネント化: コンポーネントとは、独立して交換およびアップグレードできるユニットを表します。PC を例にとると、PC の CPU、メモリ、グラフィックス カード、およびハードディスクは、他のユニットに影響を与えることなく、独立して交換およびアップグレードできます。PC をコンポーネントとしてサービスとして構築する場合、この PC はマザーボードといくつかの必要な外部デバイスを保守するだけで済みます。CPU、メモリ、ハードディスクはすべてコンポーネントとしてサービスを提供しており、PCはCPUを呼び出して計算処理を行う必要があり、CPUコンポーネントのアドレスを知っていれば十分です。

ここに画像の説明を挿入します

  • マイクロサービスは、サービスの分割、オーケストレーション管理、継続的インテグレーション、デプロイメントなどの一連の問題を引き起こすだけでなく、マイクロサービス内にも多くの問題があります。企業がマイクロサービスアーキテクチャを利用することで引き起こされる一連の問題に対応するために、サービスガバナンスプラットフォームがあります
    ここに画像の説明を挿入します

4. 比較と関連性

  • SOA は、大規模で複雑な異種混合のエンタープライズ レベルのシステムに適しています。
    このタイプのシステムの典型的な特徴は、多くのシステムが長年にわたって開発されており、各サービスが異種混合であることです。たとえば、異なるエンタープライズレベルのテクノロジーが使用されたり、一部は社内で開発され、一部は外部から購入されたりするなど、サービスは異質です。大規模な完全な置き換えまたは最適化、およびリファクタリング。コストと影響が大きすぎるため、互換性のある方法でのみ処理できます。互換性タスクを担当するのは ESB です。

  • マイクロサービスは、高速で軽量な Web ベースのインターネット システムに適しています。
    このようなシステムのビジネスは急速に変化するため、迅速な試行と迅速な納品が必要です。同時に、基本的には Web に基づいていますが、開発技術は大きく異なる場合があります。 (例: Java、.NET、PHP など)ですが、外部インターフェースは基本的に HTTP RESTful スタイルのインターフェースを提供しており、SOA の ESB のようなインターフェース層での処理を考慮する必要はありません。

  • サービスの粒度
    SOA のサービスの粒度は粗く、マイクロサービスのサービスの粒度は細かくなります。たとえば、電子商取引企業の場合、商品管理システムは SOA アーキテクチャのサービスですが、マイクロサービス アーキテクチャを採用すると、商品管理システムは、基本的な商品情報管理、サプライヤー管理、サービス管理など、より多くのサービスに分割されます。管理、倉庫管理などのサービス。

  • サービス通信
    SOA は、サービス間通信の主要コンポーネントとして ESB を使用し、一般に重量級の実装であるサービス定義、サービス ルーティング、メッセージ変換、およびメッセージ配信を担当します。マイクロサービスは、HTTP RESTful プロトコルや TCP RPC プロトコルなどの統一されたプロトコルと形式を使用し、ESB などの重量のある実装を必要としません。

  • サービス デリバリSOA は、既存のシステムとの互換性をより重視している
    ため、サービス デリバリに対する特別な要件はありません。マイクロサービスのアーキテクチャ概念では迅速なデリバリが必要であり、それに応じて自動テスト、継続的統合、自動デプロイメント、および自動運用とメンテナンスが必要です。練習など

ここに画像の説明を挿入します

ここに画像の説明を挿入します

ここに画像の説明を挿入します

5. サービス管理プラットフォーム

SOA (サービス指向アーキテクチャ) サービス ガバナンス プラットフォームは、企業内のサービス指向アーキテクチャをサポートおよび管理するために、SOA アーキテクチャに基づいて構築された特定のソフトウェア ツールまたはプラットフォームです。これは SOA の一部であり、SOA アーキテクチャを実装および管理する際に直面する課題とニーズを解決するために使用されます。

  • 範囲と位置付け: SOAは、アプリケーションを一連の独立した再利用可能なサービスに分割することによってシステムを構築するソフトウェア設計パターンまたはアーキテクチャ パラダイムですサービスの設計、実装、統合に重点を置いています。SOA サービス ガバナンス プラットフォームは、SOA アーキテクチャ向けに設計された管理プラットフォームであり、サービスの登録、検出、バージョン管理、セキュリティ管理など、企業内のサービスの管理と監視に使用されます。
  • 機能と特徴: SOA サービス ガバナンス プラットフォームは、SOA アーキテクチャにおけるガバナンスのニーズを解決するための一連の特定の機能とツールを提供します。通常、サービス レジストリ/ウェアハウス、サービス ライフ サイクル管理、サービスの監視と管理、セキュリティとアクセス制御、サービス バージョン管理、サービス契約管理、その他の機能が含まれます。SOA 自体は、特定のガバナンス機能を明確に定義または提供するものではなく、サービスの組織化と統合に重点を置いています
  • 目的と価値: SOA アーキテクチャの目的は、システムの疎結合、再利用性、柔軟性を実現し、サービス指向のソリューションを提供することです。**SOA サービス ガバナンス プラットフォームの目的は、SOA アーキテクチャの管理性、制御性、拡張性を強化することです。**管理および監視ツールを提供することで、企業がサービスをより適切に組織、管理、維持し、システムの安定性と信頼性を向上させるのに役立ちます。

具体的な例を挙げると、企業の SOA アーキテクチャを背景として使用して、SOA サービス ガバナンス プラットフォームと SOA の違いを説明できます。

  • 企業が SOA アーキテクチャを採用してビジネス システムを構築し、さまざまなビジネス機能を独立したサービスに分割するとします。これらのサービスには、注文サービス、支払いサービス、ユーザー管理サービスなどが含まれる場合があります。
  • この場合、SOA アーキテクチャは、システムの疎結合と再利用性を実現するために、これらのサービスをどのように設計、実装、統合するかに焦点を当てます。
  • ただし、サービスの数と複雑さが増加するにつれて、企業は次のような特定の課題に直面する可能性があります。
    サービスの検出と再利用:サービスの数が増加するにつれて、既存のサービスを簡単に検出して再利用し、開発の重複を回避し、開発効率を向上させる方法そしてシステムの保守性。
    サービスのバージョン管理:サービスが変更またはアップグレードされる場合、システムの不安定性や機能の競合を回避するために、サービスの異なるバージョンを管理し、サービス間のバージョン互換性を確保する方法。
    サービスのセキュリティ管理:潜在的なセキュリティ脅威を防ぐためにサービスとデータのセキュリティを保護しながら、許可されたユーザーまたはシステムのみがサービスにアクセスして使用できるようにする方法。
    サービスの監視と管理:サービスのパフォーマンス、可用性、正常性状態をリアルタイムで監視し、潜在的な問題をタイムリーに発見して解決し、サービスの安定した運用を確保する方法。
  • これらの課題を解決するために、企業は補助ツールとして SOA サービス ガバナンス プラットフォームを導入できます。プラットフォームは次の機能を提供できます。
    レジストリ/ウェアハウス: サービスの集中ストレージとして、インターフェイス定義、バージョン情報、アクセス許可などを含むサービスのメタデータ情報を記録します。このようにして、開発者は既存のサービスを簡単に見つけて再利用できます。
    サービスのバージョン管理: ガバナンス プラットフォームは、さまざまなバージョンのサービスを追跡および管理し、サービスのアップグレードとロールバックを管理するメカニズムを提供します。このようにして、サービス間のバージョン互換性が確保され、潜在的な競合や問題が回避されます。
    セキュリティとアクセス制御: ガバナンス プラットフォームは、認証、認可、暗号化などのセキュリティ メカニズムを提供し、許可されたユーザーまたはシステムのみがサービスにアクセスして使用できるようにし、サービスとデータのセキュリティを保護します。
    サービスの監視と管理: ガバナンス プラットフォームは、サービスのパフォーマンス指標、通話ステータス、エラー率などをリアルタイムで監視でき、管理者が問題を特定して解決し、サービスの安定した運用を確保できるようにします。
  • SOA サービス ガバナンス プラットフォームを導入することで、企業は SOA アーキテクチャ内のサービスをより適切に管理および制御できるようになります
    このプラットフォームは、企業が SOA アーキテクチャにおける特定の課題を解決し、システムの管理性、制御性、拡張性を向上させるのに役立つ一連のツールと機能を提供します。

マイクロサービスとマイクロサービス ガバナンス プラットフォーム:

  • マイクロサービス:
    ユーザーサービス: ユーザーの登録、ログイン、個人情報管理などの機能を担当します。
    注文サービス: 注文の作成、支払いステータスの管理、その他の機能の処理を担当します。
    支払いサービス: 支払いリクエスト、支払いコールバック、その他の機能の処理を担当します。
    製品サービス: 製品リスト、詳細、在庫管理、その他の機能の処理を担当します。
  • マイクロサービス ガバナンス プラットフォーム:
    マイクロサービス ガバナンス プラットフォームは、企業がマイクロサービス アーキテクチャ内の個々のマイクロサービスを管理および監視するのに役立つ補助ツールです。これは次の機能を提供します。
    サービスの登録と検出: 各マイクロサービスをガバナンス プラットフォームのサービス レジストリに登録して、他のマイクロサービスがそれらを検出して呼び出せるようにします。たとえば、各マイクロサービスは、開始時にサービス アドレスやインターフェイス定義などの独自のサービス情報をガバナンス プラットフォームに登録します。
    負荷分散とフォールト トレランス: ガバナンス プラットフォームは負荷分散戦略を実装し、利用可能なマイクロサービス インスタンスにリクエストを合理的に分散して、システムのパフォーマンスと信頼性を向上させることができます。マイクロサービス インスタンスに障害が発生すると、管理プラットフォームはリクエストを他の利用可能なインスタンスに自動的に転送して、フォールト トレラント メカニズムを実装できます。
    サービスの監視と追跡: ガバナンス プラットフォームは、リクエストの応答時間やエラー率などのマイクロサービスのパフォーマンス指標のリアルタイムの監視と統計を提供します。また、開発者が分散環境での問題をデバッグおよびトラブルシューティングするのに役立つリクエスト追跡情報を記録することもできます。
    セキュリティとアクセス制御: ガバナンス プラットフォームは、承認されたサービスまたはクライアントのみが特定のマイクロサービスにアクセスできるようにするセキュリティ メカニズムを提供します。認証、アクセス トークン管理、API キー、およびマイクロサービスのセキュリティを保護するその他の機能を提供できます。
    構成管理: ガバナンス プラットフォームは、データベース接続、サードパーティ サービスのアドレスなどのマイクロサービスの構成情報を一元管理できます。こうすることで、マイクロサービスを再デプロイすることなく、実行時に構成を動的に変更できます。
  • 上記の電子商取引アプリケーションの例では、マイクロサービス ガバナンス プラットフォームは、企業がマイクロサービス アーキテクチャをより適切に整理および管理できるようにする集中管理および監視ツールとして機能します。サービスの登録と検出、負荷分散とフォールト トレランス、サービスの監視と追跡、セキュリティとアクセス制御、構成管理などの機能を提供し、マイクロサービス アーキテクチャの管理性、制御性、スケーラビリティを強化します。

マイクロサービス ガバナンス プラットフォームは、マイクロサービス アーキテクチャに適しており、多数の小規模なマイクロサービス インスタンスと複雑なサービス通信を処理し、多くの場合、最新のマイクロサービス テクノロジ スタックと統合されています。
SOA ガバナンス プラットフォームはサービス指向アーキテクチャに適しており、少数のサービス インスタンスと比較的単純なサービス通信を処理し、通常は従来のミドルウェアや ESB と統合されます。

  • 粒度とスケール:
    マイクロサービス ガバナンス プラットフォーム: マイクロサービス アーキテクチャでは、アプリケーションを複数の小規模な自律型マイクロサービスに分割し、それぞれが特定のビジネス機能に焦点を当てることに重点を置いています。したがって、マイクロサービス ガバナンス プラットフォームは通常、多数のマイクロサービス インスタンスと複雑なサービスの間の通信と調整を処理する必要があります
    SOA ガバナンス プラットフォーム: SOA アーキテクチャのサービスはより粒度が粗く、より大きなビジネス コンポーネントやアプリケーション モジュールになる場合があります。したがって、SOA ガバナンス プラットフォームは通常、少数のサービス インスタンス比較的単純なサービス通信を処理します。

大規模なプロジェクトでは、従来の SOA アーキテクチャではなくマイクロサービス アーキテクチャの使用を好むことがよくあります。マイクロサービス アーキテクチャには、大規模なプロジェクトを処理する場合に次の利点があります。

  • モジュール性と保守性: マイクロサービス アーキテクチャは、アプリケーションを一連の小規模な自律サービスに分割し、それぞれが単一のビジネス機能に焦点を当てます。このモジュール構造により、システムの理解、開発、保守が容易になります。チームは、システム全体に影響を与えることなく、各マイクロサービスを個別に開発およびテストできます。
  • 弾力性とスケーラビリティ: マイクロサービス アーキテクチャにより、各マイクロサービスが独立して水平方向に拡張し、必要に応じてリソースを割り当てることができます。この弾力性と拡張性により、システムは高トラフィックと負荷を処理し、ピーク状況をより適切に処理できるようになります。
  • テクノロジーの多様性: マイクロサービス アーキテクチャでは、各マイクロサービスに最適なテクノロジー スタックとツールの使用が推奨されます。これにより、チームは単一のテクノロジー スタックに縛られることなく、ビジネス ニーズに最も適したテクノロジーを選択できるようになります。これは、複数のシステムやテクノロジーの統合が必要になる可能性がある大規模プロジェクトの場合に特に重要です。
  • 独立したデプロイと操作性: マイクロサービス アーキテクチャにより、各マイクロサービスは他のマイクロサービスに影響を与えることなく、独立してデプロイおよび運用できます。この独立性により、システムのメンテナンスとトラブルシューティングが簡素化され、システム全体のリスクが軽減されます。

最新のアプリケーション開発ではマイクロサービス アーキテクチャがますます一般的になりつつありますが、特に特定の状況では、SOA には依然としていくつかの利点があります。

  1. 統一されたデータ モデルと標準: SOA アーキテクチャでは、サービスの定義と交換に統一されたデータ モデルと標準を使用することが重視されています。この一貫性により、異種システム間の統合とコラボレーションが容易になり、データ変換とマッピングの複雑さが軽減されます。SOA は、XML や SOAP などの標準を使用して、異なるプラットフォームやテクノロジー間の通信を容易にします。

  2. 集中管理とガバナンス: SOA アーキテクチャは通常、集中管理とガバナンス モデルを使用します。これは、すべてのサービスの登録、検出、セキュリティ、バージョン管理、アクセス制御などの側面を一元的に管理および制御できることを意味します。この集中管理およびガバナンス モデルは、特定のシナリオでは実装および維持が容易です。

  3. 従来のエンタープライズ環境に最適: SOA アーキテクチャは、過去数十年にわたり、特に従来のエンタープライズ環境で広く採用されてきました。多くの企業は広範な SOA インフラストラクチャと関連テクノロジを備えているため、マイクロサービスを完全に採用するよりも既存の SOA システムを拡張および改善する方が簡単です。

  4. 再利用と共有: SOA アーキテクチャは、サービスの再利用と共有を促進します。共通のサービスを定義すると、さまざまな部門やアプリケーションがこれらのサービスを共有して再利用できるため、開発効率とリソースの使用率が向上します。

  5. 成熟したツールとソリューション: SOA アーキテクチャの長い歴史により、SOA の開発、統合、管理に利用できる成熟したツールとソリューションが多数あります。これらのツールとソリューションは、サービス登録、検出、メッセージング、トランザクション管理などを含む、完全な機能セットを提供します。

SOA には上記の利点がありますが、いくつかの側面では、マイクロサービス アーキテクチャの方が最新のアプリケーション開発のニーズに適しています。マイクロサービス アーキテクチャにより、柔軟性、拡張性、独立性が向上し、チームが新しい機能をより迅速に反復して提供できるようになります。同時に、マイクロサービス アーキテクチャは、複雑な分散システムの構築により適しており、多様なテクノロジー スタックとチームの自律性をサポートします。したがって、アーキテクチャを選択するときは、プロジェクトのニーズ、チームの能力、既存のインフラストラクチャなどの要素を考慮する必要があります。

参考文献: 12345

おすすめ

転載: blog.csdn.net/qq_33957603/article/details/132941301