企業は何十年もの間、アプリケーションを相互に接続するためにエンタープライズ・サービス・バス(ESB)を使用してきました。通常、これらのアプリケーションはモノリシックであり、アプリ内に必要なすべてのサービスを含めることで包括的に構築されています。その後、クラウドサービスが拡大し、プラグイン可能な個別のマイクロサービスが登場しました。マイクロサービスは、企業がリソースを管理する方法の根本的な変化を表しているため、ESBとマイクロサービスの両方が果たす役割を探り、それぞれの利点を理解することが助けになります。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
ESB(エンタープライズ・サービス・バス)とは、一元化されたソフトウェア・コンポーネントを使用してアプリケーション間の統合を行う統合手法です。ESBを作成するために、開発者は異なるアプリケーション間に通信バスを構築します。次に、各アプリケーションがバスと通信できるようになり、その結果、接続されたアプリケーション間でデータと通信を共有できるようになります。アプリケーションの連携に対するこの標準化されたアプローチにより、DevOpsはアプリケーションごとにカスタムのポイントツーポイント統合を構築する必要がなくなります。
コンピューティング・アーキテクチャー全体での使用方法の観点からESBを見ると、よくわかります。ESBは、疎結合を通じてサービス間の通信を促進するように設計されたアーキテクチャー・アプローチであるSOA(サービス指向アーキテクチャー)の構成要素です。SOAはシステムのアーキテクチャーに対する包括的なアプローチであり、ESBはそのアプローチを可能にする通信ツールです。
ESBがSOAアーキテクチャーにどのように適合するかについて詳しくは、「ESBとSOA」をご覧ください。
マイクロサービスは、1つのアプリケーションを多くの独立したデプロイ可能なコンポーネント(サービス)で構成する、クラウドネイティブなアーキテクチャー・アプローチです。大規模で緊密に結合されたアプリケーションという従来のモノリシックなアプリケーション・アプローチとは対照的に、マイクロサービスは代わりにコンテナを利用します。コンテナを使用すると、中央データベースのボトルネックを回避するスケーラブルな分散システムが作成されます。
マイクロサービスは、ビジネス機能によって区別されます。例えば、アプリケーションのカート、顧客データ、製品情報はすべて独自のデータベース内に保管され、API、イベント・ストリーミング、またはメッセージング・プロトコルを介してリアルタイムで通信し、アプリケーションの全体的な機能を作成します。
ESBとマイクロサービスの主な違いは、ESBは統合ツールであるのに対し、マイクロサービスはその名のとおり、組み合わされてアプリケーションになる小さなサービス・コンポーネントであることです。
ESBは、さまざまなアプリケーションやサービスが簡単に通信できるようにデータをインプット、変換、アウトプットする、標準化された一元化ハブです。マイクロサービスは他のマイクロサービスに依存しません。必要に応じて、アプリケーションにプラグイン/アウトできます。ESBとマイクロサービスは、アプローチは異なりますが、「クラウド・ベースのアプリケーションの開発とオペレーションをより簡単かつ効率的にする」という同じ目標を掲げています。
ESBとマイクロサービスの違いを完全に理解するには、それらをどのように比較するかだけでなく、ESBとマイクロサービスがそれぞれのアーキテクチャー・モデルとどのように関連しているかを調べることが役立ちます。
マイクロサービス・アーキテクチャーは、開発チームがアプリケーションの機能を構築するために連携する、高度に専門化された多数のサービスで構成されています。マイクロサービス・アーキテクチャーの設計が次に進むにつれて、サービスを分離するメリットが増大しています。よりアジャイルでスケーラブルになり、現代の組織のニーズに対応できるようになるのです。
一方、ESBは、もともとクラウド以前のレガシー・システムの時代向けに設計された製品です。マイクロサービス・アーキテクチャー・アプローチを採用した場合と比べ、統合の開発には時間がかかり、柔軟性も低下します。ESBの一元化された統合ハブにより、マイクロサービス内の原因を特定するよりも簡単に、問題のトラブルシューティングを行うことができます。ただし、フォールト・トレランスがなければ、ESBは企業全体の単一障害点となる可能性もあり、その結果、修正する必要がある全体的な問題がさらに大きくなる可能性があります。
ESBとSOAアーキテクチャー、マイクロサービス・アーキテクチャーの違いについて詳細は、「SOAとマイクロサービスの違いとは」をご覧ください。
ESBを使用するメリットとデメリットには次のようなものがあります。
マイクロサービスを使用することのメリットとデメリットには次のようなものがあります。
簡単に答えると、ノーです。ESBは、小規模で特殊なWebサービスと、古い企業規模のサービスやアプリケーションの両方を接続できます。そのため、大規模なオンプレミス・ソリューションをSaaSソリューションや他のクラウドベース環境と統合するための最適なソリューションとなっています。
しかし、近年、マイクロサービスは多くの組織で推奨されるアーキテクチャー・モデルになっています。現在、マイクロサービスがESBやSOAよりも優れている理由は以下のようにいくつかあります。
マイクロサービスが推奨されるアーキテクチャー・アプローチとなる場合のユースケースをいくつか以下に示します。
マイクロサービスが現在優位性を持っている一方で、ESBは需要を満たすためにマイクロサービスのアーキテクチャー的側面を適応させる可能性があります。コンテナ技術の台頭と複数のクラウド環境を統合する必要性は、ESBアーキテクチャーの使用方法と、ESBアーキテクチャーが進化してより現代的になる方法に影響を与えるでしょう。
今日の企業は、ITインフラストラクチャーをハイブリッドクラウドに移行するための無停止ソリューションを模索しており、統合に対する最新のアプローチが必要になります。多くの企業にとって、これにはSOAとESBのパターンに基づくワークロードを、より軽量で柔軟なモデルに変換することが含まれます。
企業は、レガシー・システムを進化するESBサービスに対応した状態で維持しながら、独立したマイクロサービスをデプロイすることで、クラウドの拡張性と柔軟性を活用できます。オートメーションを使用することで、アプローチに関係なくプロセスを標準化でき、移行をより迅速かつ効率的にすることができます。IBMは、事前構築されたワークフローなど、AI搭載のオートメーション機能へのアクセスを提供し、イノベーションとデジタル・トランスフォーメーションの加速を支援します。
IBM Cloud Integrationソリューションが統合開発を最大300%加速させ、コストを33%以上削減し、全体の運用効率を向上させる方法をご確認ください。
IBM Cloud Pak for Integrationを使用した、統合のモダナイズとミドルウェア投資の活用方法をご覧ください。このハイブリッド統合プラットフォームは、自動化された閉ループ・アプローチを使用しており、単一の統合エクスペリエンス内で複数スタイルの統合をサポートします。
統合テクノロジーを進化させるために組織が進むべき方向の全体像を把握しましょう。IBMの統合成熟度アセスメントは、組織の統合成熟度と、次のレベルに到達するために実行できるアクションを厳しく評価します。
Red Hat OpenShift on IBM Cloudは、フルマネージド型のOpenShift Container Platform(OCP)です。
DevOpsソフトウェアとツールを使用して、複数のデバイスと環境にわたって、クラウドネイティブなアプリを構築、デプロイ、管理します。
IBMのクラウド・コンサルティング・サービスで新しい機能にアクセスし、ビジネスの俊敏性を高めましょう。ハイブリッドクラウド戦略や専門家とのパートナーシップを通じて、ソリューションを共創し、デジタル・トランスフォーメーションを加速させ、パフォーマンスを最適化する方法をご覧ください。