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

ドットのオーバーレイがある都市の航空写真

ESBとマイクロサービスの類似点、相違点、互いのアーキテクチャー・モデルとの関連性。

企業は何十年もの間、アプリケーションを相互に接続するためにエンタープライズ・サービス・バス(ESB)を使用してきました。通常、これらのアプリケーションはモノリシックであり、アプリ内に必要なすべてのサービスを含めることで包括的に構築されています。その後、クラウドサービスが拡大し、プラグイン可能な個別のマイクロサービスが登場しました。マイクロサービスは、企業がリソースを管理する方法の根本的な変化を表しているため、ESBとマイクロサービスの両方が果たす役割を探り、それぞれの利点を理解することが助けになります。

 

The DX Leaders

AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。

ご登録いただきありがとうございます。

ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。

エンタープライズ・サービス・バスとは

ESB(エンタープライズ・サービス・バス)とは、一元化されたソフトウェア・コンポーネントを使用してアプリケーション間の統合を行う統合手法です。ESBを作成するために、開発者は異なるアプリケーション間に通信バスを構築します。次に、各アプリケーションがバスと通信できるようになり、その結果、接続されたアプリケーション間でデータと通信を共有できるようになります。アプリケーションの連携に対するこの標準化されたアプローチにより、DevOpsはアプリケーションごとにカスタムのポイントツーポイント統合を構築する必要がなくなります。

コンピューティング・アーキテクチャー全体での使用方法の観点からESBを見ると、よくわかります。ESBは、疎結合を通じてサービス間の通信を促進するように設計されたアーキテクチャー・アプローチであるSOA(サービス指向アーキテクチャー)の構成要素です。SOAはシステムのアーキテクチャーに対する包括的なアプローチであり、ESBはそのアプローチを可能にする通信ツールです。

ESBがSOAアーキテクチャーにどのように適合するかについて詳しくは、「ESBとSOA」をご覧ください。

マイクロサービス

マイクロサービスとは何ですか?

この動画では、Dan Bettingerがマイクロサービスの概要を述べています。サンプルチケット発行アプリケーションの例を通して、マイクロサービス・アプリケーション・アーキテクチャーを従来のタイプのモノリシック・アーキテクチャーと比較することで、マイクロサービスの多数の利点と、モノリスが提示する課題にマイクロサービスがもたらすソリューションについて説明します。

マイクロサービスとは何ですか?

マイクロサービスは、1つのアプリケーションを多くの独立したデプロイ可能なコンポーネント(サービス)で構成する、クラウドネイティブなアーキテクチャー・アプローチです。大規模で緊密に結合されたアプリケーションという従来のモノリシックなアプリケーション・アプローチとは対照的に、マイクロサービスは代わりにコンテナを利用します。コンテナを使用すると、中央データベースのボトルネックを回避するスケーラブルな分散システムが作成されます。

マイクロサービスは、ビジネス機能によって区別されます。例えば、アプリケーションのカート、顧客データ、製品情報はすべて独自のデータベース内に保管され、API、イベント・ストリーミング、またはメッセージング・プロトコルを介してリアルタイムで通信し、アプリケーションの全体的な機能を作成します。

ESBとマイクロサービスの主な違い

ESBとマイクロサービスの主な違いは、ESBは統合ツールであるのに対し、マイクロサービスはその名のとおり、組み合わされてアプリケーションになる小さなサービス・コンポーネントであることです。

ESBは、さまざまなアプリケーションやサービスが簡単に通信できるようにデータをインプット、変換、アウトプットする、標準化された一元化ハブです。マイクロサービスは他のマイクロサービスに依存しません。必要に応じて、アプリケーションにプラグイン/アウトできます。ESBとマイクロサービスは、アプローチは異なりますが、「クラウド・ベースのアプリケーションの開発とオペレーションをより簡単かつ効率的にする」という同じ目標を掲げています。

ESBとマイクロサービスの違いを完全に理解するには、それらをどのように比較するかだけでなく、ESBとマイクロサービスがそれぞれのアーキテクチャー・モデルとどのように関連しているかを調べることが役立ちます。

マイクロサービス・アーキテクチャーは、開発チームがアプリケーションの機能を構築するために連携する、高度に専門化された多数のサービスで構成されています。マイクロサービス・アーキテクチャーの設計が次に進むにつれて、サービスを分離するメリットが増大しています。よりアジャイルでスケーラブルになり、現代の組織のニーズに対応できるようになるのです。

一方、ESBは、もともとクラウド以前のレガシー・システムの時代向けに設計された製品です。マイクロサービス・アーキテクチャー・アプローチを採用した場合と比べ、統合の開発には時間がかかり、柔軟性も低下します。ESBの一元化された統合ハブにより、マイクロサービス内の原因を特定するよりも簡単に、問題のトラブルシューティングを行うことができます。ただし、フォールト・トレランスがなければ、ESBは企業全体の単一障害点となる可能性もあり、その結果、修正する必要がある全体的な問題がさらに大きくなる可能性があります。

ESBとSOAアーキテクチャー、マイクロサービス・アーキテクチャーの違いについて詳細は、「SOAとマイクロサービスの違いとは」をご覧ください。

ESBの長所と短所

ESBを使用するメリットとデメリットには次のようなものがあります。

  • 長所:サービスを簡単に再利用できます。ESB経由でサービスが接続されると、それらのサービスは最小限の労力で他のサービスに接続できます。
  • 長所:ガバナンスと監視の強化が可能になります。ESBはアプリケーションを統合するための集中ハブであるため、サービスの使用状況を管理し、統計を監視するための中心点としても機能します。
  • 長所:アプリケーションのデプロイがより簡単です。すべてのサービス・ルーティングおよびオーケストレーションの機能がESBに組み込まれているため、デプロイメントが容易になります。
  • 短所:可用性に対するリスクを引き起こします。ESBはネットワーク上のすべてのシステムを調整する中心的な役割を果たしているため、バス自体が単一障害点になる可能性があります。

マイクロサービスの長所と短所

マイクロサービスを使用することのメリットとデメリットには次のようなものがあります。

  • 長所:DevOpsの柔軟性が向上します。チームは、コンポーネントごとに、異なるスタックやプログラミング言語を使用できます。
  • 長所:マイクロサービスは、アプリケーション全体を変更しなくても新しい機能を追加できるため、アジャイル開発が可能になります。
  • 長所:サービス間の依存性が低いため、継続的デリバリーの実装が容易になり、チームのデプロイも迅速化します。
  • 長所:アプリケーション全体を拡張することなく、コンポーネントを個別に拡張できます。
  • 短所:マイクロサービスは非常に柔軟でアジャイルですが、より複雑になります。独立したサービスがより多くの場所に展開されると、1つのサービスの問題が複数のアプリケーションに影響を与える可能性があります。

マイクロサービス・アーキテクチャーはESBに取って代わるのか

簡単に答えると、ノーです。ESBは、小規模で特殊なWebサービスと、古い企業規模のサービスやアプリケーションの両方を接続できます。そのため、大規模なオンプレミス・ソリューションをSaaSソリューションや他のクラウドベース環境と統合するための最適なソリューションとなっています。

しかし、近年、マイクロサービスは多くの組織で推奨されるアーキテクチャー・モデルになっています。現在、マイクロサービスがESBやSOAよりも優れている理由は以下のようにいくつかあります。

  • 個別に変更して、俊敏性を高めることができる。
  • クラウドネイティブ・インフラストラクチャーをより有効に活用するために、個別に拡張できる。
  • 24時間年中無休のオンライン・オペレーションに必要なレジリエンスを提供できる。

マイクロサービスが推奨されるアーキテクチャー・アプローチとなる場合のユースケースをいくつか以下に示します。

  • ストリーミング・サービス:オーディオ/ビデオ・ストリーミング・アプリケーションではデータとトラフィックが大きく変動するため、迅速なスケールアップまたはスケールダウンの機能が不可欠です。
  • 主要な機能を追加する際の柔軟性:今日の消費者は、継続的な更新やカスタマイズを求めています。マイクロサービスを使用すると、DevOpsがスキルセットに最適な言語や、パフォーマンス要件に最適な実装テクノロジーを選択できるため、新機能の追加が容易になります。
  • IoT(モノのインターネット):1つのIoT製品に、24時間年中無休でデータを収集する数百万のエンドポイントを含めることができます。マイクロサービスは、分離されたアーキテクチャーと拡張性を備えているため、IoT(モノのインターネット)に伴う大規模なデータの需要の管理に役立ちます。
  • データの保護:データの統合と保存にクラウド・サービスを使用することは、規制やコンプライアンス要件によって複雑になる場合があります。マイクロサービスでは、データは個別に実行されます。開発チームはデータの完全な管理を維持できるため、HIPAAやGDPRへの準拠が容易になります。

マイクロサービスが現在優位性を持っている一方で、ESBは需要を満たすためにマイクロサービスのアーキテクチャー的側面を適応させる可能性があります。コンテナ技術の台頭と複数のクラウド環境を統合する必要性は、ESBアーキテクチャーの使用方法と、ESBアーキテクチャーが進化してより現代的になる方法に影響を与えるでしょう。

ESB、マイクロサービス、IBM

今日の企業は、ITインフラストラクチャーをハイブリッドクラウドに移行するための無停止ソリューションを模索しており、統合に対する最新のアプローチが必要になります。多くの企業にとって、これにはSOAとESBのパターンに基づくワークロードを、より軽量で柔軟なモデルに変換することが含まれます。

企業は、レガシー・システムを進化するESBサービスに対応した状態で維持しながら、独立したマイクロサービスをデプロイすることで、クラウドの拡張性と柔軟性を活用できます。オートメーションを使用することで、アプローチに関係なくプロセスを標準化でき、移行をより迅速かつ効率的にすることができます。IBMは、事前構築されたワークフローなど、AI搭載のオートメーション機能へのアクセスを提供し、イノベーションとデジタル・トランスフォーメーションの加速を支援します。

次のステップ

IBM Cloud Integrationソリューションが統合開発を最大300%加速させ、コストを33%以上削減し、全体の運用効率を向上させる方法をご確認ください。

IBM Cloud Pak for Integrationを使用した、統合のモダナイズとミドルウェア投資の活用方法をご覧ください。このハイブリッド統合プラットフォームは、自動化された閉ループ・アプローチを使用しており、単一の統合エクスペリエンス内で複数スタイルの統合をサポートします。

統合テクノロジーを進化させるために組織が進むべき方向の全体像を把握しましょう。IBMの統合成熟度アセスメントは、組織の統合成熟度と、次のレベルに到達するために実行できるアクションを厳しく評価します。

関連ソリューション
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloudは、フルマネージド型のOpenShift Container Platform(OCP)です。

Red Hat OpenShiftの詳細はこちら
DevOpsソリューション

DevOpsソフトウェアとツールを使用して、複数のデバイスと環境にわたって、クラウドネイティブなアプリを構築、デプロイ、管理します。

DevOpsソリューションの詳細はこちら
クラウド・コンサルティング・サービス 

IBMのクラウド・コンサルティング・サービスで新しい機能にアクセスし、ビジネスの俊敏性を高めましょう。ハイブリッドクラウド戦略や専門家とのパートナーシップを通じて、ソリューションを共創し、デジタル・トランスフォーメーションを加速させ、パフォーマンスを最適化する方法をご覧ください。

クラウド・サービス
次のステップ

IBM Cloudコンサルティング・サービスで新しい機能を解き放ち、ビジネスの俊敏性を高めましょう。

IBM Cloudコンサルティング・サービスはこちら 無料のIBM Cloudアカウントを作成