Jump to section

イベントメッシュとは

URL をコピー

イベントメッシュは、分散環境全体のアプリケーションに通知を送信するための動的インフラストラクチャです。イベント駆動型アーキテクチャ (EDA) のコンテキストでは、イベントは、通知を生成するシステム内の変更、アクション、または監視であり、通知はそのイベントに対応する他のシステムに送信されます。イベントメッシュにより、このような接続が可能になります。

イベントメッシュを説明するには、まず、「イベント」を介した通信に基づくソフトウェア・アーキテクチャであるイベント駆動型アーキテクチャ (EDA) について説明する必要があります。イベントは、通知を生成するシステム内の変更、アクション、または監視であり、通知はそのイベントに対応する他のシステムに送信されます。

イベントのトリガーには、たとえば顧客の請求先住所の変更、新規注文のようなアクション、バッテリーの充電レベルやセンサーによる温度測定値の監視などがあります。 各イベントは、他のアプリケーションによって消費される情報です。複数のコンシューマーが同じメッセージを受信し、関連するデータをそれぞれ独自の方法で利用して、特定のジョブを遂行することができます。

EDA のイベントベースの通信は「非同期」型であり、このタイプのデータ転送の方法としては従来の「同期」通信より適しています。同期メッセージングでは、2 つのアプリケーションが直接接続します。通常は HTTP アプリケーション・プログラミング・インタフェース (API) を介して接続し、正常に通信するには、両方のサービスが利用可能かつ応答可能であることが必要です。いずれかのサービスが利用できない場合、メッセージを処理できず、システム全体が停止したり、破綻したりする可能性があります。同期送信は、多くの場合、組織全体の複数のシステムに大量の情報を送信する方法として理想的なものではありません。 

逆に「非同期」通信はイベント駆動型であり、複数のアプリケーションがほぼリアルタイムで同時かつ迅速に通信することが可能です。システムが一時的にイベントを受信できない状態になっていたとしても、EDA の非同期性により、システムが使用可能になれば通知が配信されます。

EDA は、イベントプロデューサーとコンシューマーの間のランタイムカップリングを必要としないため、EDA は先進的な分散アプリケーションに最適です。

組織全体で、毎分数百から数千ものイベントが生成されます。組織は、クラウドとオンプレミスの分散環境にまたがってデプロイされたさまざまなアプリケーションに、大量のイベントを配信する効果的な方法を必要としています。イベント駆動型の組織では、イベントメッシュによってそれが可能になります。

イベントメッシュは、相互接続された「イベントブローカー」のネットワークを介してプロデューサーからコンシューマーにイベントを配信する動的インフラストラクチャです。イベントメッシュは環境に依存せず、アプリケーションのデプロイ先 (パブリック、プライベート、ハイブリッドクラウド、PaaS、モノのインターネット (IoT)、さらには非クラウド) に関係なく、統合されていないクラウド・プラットフォーム間でイベントを配信するように設計されており、イベントルーティングの構成は必要ありません。  

イベントメッシュを使用すると、パブリッシャーはプラットフォームのネイティブなイベントメカニズムを使用でき、サブスクライバーも同様です。したがって、Kubernetes クラスタの Node.js 開発者がイベントを公開し、別のクラスタの Java 開発者が同じイベントにサブスクライブすることも可能です。アプリケーションの種類、アプリケーションが構築された開発プラットフォーム、メッセージングに使用されるストリーミング・テクノロジー、あるいは、アプリケーションがホストされているクラウドの種類に関係なく、すべてのコンシューマーがイベントを利用できます。

イベントメッシュは、環境に関係なくアプリケーション間で情報を配信できるため、レガシーアプリケーション、データベース、デバイス、および最新のマイクロサービスベースのクラウドネイティブ・アプリケーション間の疎結合統合をサポートします。

イベントメッシュは、さまざまなメッセージングサービスと連携させたり、それらのサービス間で変換させたりすることもできます。Apache Kafka は、特にクラウドネイティブ開発者が好んで選択する EDA メッセージングです。イベントメッシュは、Knative Eventing、Cloud Events、HTTP、AMQP などの他のメッセージングサービスもサポートします。

イベント駆動型アーキテクチャを完全に採用している組織では、イベントメッシュは EDA 導入のプロセスが成熟段階に入ったことを意味します。非同期相互作用とイベント駆動型アーキテクチャのパターンは新しいものではありませんが、イベントメッシュは統合への画期的な新しいアプローチで、次世代の組織の通信インフラストラクチャになるものとして位置付けられています。

名前が似ているため、サービスメッシュとイベントメッシュは混同されがちです。しかし、イベントメッシュはサービスメッシュとは違います。イベントメッシュは非同期ですが、サービスメッシュがサポートするのは従来の同期型の要求/応答メッセージングです。

 

イベントメッシュとサービスメッシュは、2 つの異なる効果的な通信オプションを提供することで組織内で相互に補完し、開発者が設計しているアプリケーションに最適なものを選択できる柔軟性を提供します。ただし、サービスメッシュは非同期のイベント駆動型通信をサポートしていないので、単一クラスタのデプロイには最適ですがイベントメッシュの代わりに使用することはできません。

組織の要求に応え、イベント駆動型アーキテクチャに求められるものを提供するために、イベントメッシュは次の機能を備えている必要があります。

  • Kafka、Knative Eventing、HTTP、AMQP などのさまざまなメッセージングサービスのサポート
  • ネットワーク障害からの自動回復や配信不能メッセージのフォールバック宛先など、信頼性の高いメッセージ配信のフォールトトレランス
  • 統合されていないイベント、アプリケーション、メッセージング・プラットフォーム間のマルチプロトコルブリッジのサポート
  • オンプレミスとマルチクラウドの両方のデプロイのサポート
  • マルチキャスト (すべてのサブスクライバーが各メッセージのコピーを受信する) またはエニーキャスト (1 つのサブスクライバーが生成された各メッセージのコピーを受信する) アドレスのサポート
  • イベントメッセージの安全な接続と送信

イベントメッシュのユースケース

イベント駆動型アーキテクチャとイベントメッシュを組み合わせると、さまざまなアプリケーションスタックを使用して、複雑で広く分散されたマルチクラウドのトポロジー全体にデプロイされる広範なユースケースをサポートできます。以下は、イベントメッシュを活用できる可能性がある多くのユースケースのほんの一例です。

マイクロサービスの統合

イベントメッシュは、マイクロサービスベースのアプリケーションを相互に、そしてレガシー・テクノロジーと簡単に接続します。

e コマース

イベントメッシュにより、トランザクションの迅速な処理が可能になり、Web サイトやアプリケーションを介して、顧客と高速で信頼性の高いやり取りが行えるようになります。

カスタマーサポート

イベントメッシュは、顧客とのやり取りのデータを高速で提供できるため、サポートチームは顧客にリアルタイムで応答し、パーソナライズされたエクスペリエンスを生み出すことができます。

金融サービス

イベントメッシュを使用すると、金融サービスプロバイダーは、リアルタイムの取引データを少ない待ち時間で同期できるようになります。さらに、イベントメッシュは、疑わしいトランザクションに関する情報をリアルタイムで伝達し、不正の検出をサポートします。

IoT 接続

イベントメッシュは、信頼性が高くスケーラブルな IoT (モノのインターネット) 接続をバックエンドシステムにもたらし、ほぼすべてのセンサーのメトリクスを処理します。

イベントメッシュは、最終的に、ビジネスに次のようなメリットをもたらします。

リアルタイムの応答性

ビジネスの成功は、変化への対応力に基づいています。イベントメッシュの主な利点の 1 つは、データを (イベント駆動型アーキテクチャを介したイベントのストリームとして) リアルタイムで提供し、タイムリーな応答を可能にすることです。イベントメッシュは非常に効率的で、イベントプロデューサーとコンシューマーを結ぶ最速のパスを決定し、メッセージングのレイテンシーを実質的に排除します。これにより、ビジネスのステークホルダーは、時間的制約のある意思決定を必要とする重要な問題に迅速に対応するためのアジリティを得ることができます。

カスタマーエクスペリエンスの向上

イベントメッシュは、顧客対応チームと e コマース・テクノロジーが使用するデータのリアルタイム提供を可能にし、顧客へのサービス提供を支援するため、カスタマーエクスペリエンスが向上します。

運用コストの削減

イベントメッシュは、製造、販売、在庫、出荷をリアルタイムで可視化することにより、運用の最適化、効率の向上、コストの削減を可能にします。

開発者の生産性

さまざまな種類の環境、メッセージングシステム、プロトコルに依存しないイベントメッシュのサポートを受け、アプリケーション開発者は、利用可能な最善の技術を使用してビジネスロジックの実装に専念できます。これにより、開発者は、複雑なデータ配信ネットワークを開発することなく、開発環境、メッセージング・プラットフォーム、またはクラウドの種類に制限を加えずに、イノベーションを起こすことができます。

関連資料

記事

統合 (インテグレーション) とは

統合に関する詳細な情報をお探しですか?デジタル・トランスフォーメーションとは何か、どのように導入できるか、そして、オープンソースがどのような相乗効果をもたらすのかを説明します。

記事

Apache Kafka とは

Apache Kafka は分散データストリーミング・プラットフォームで、レコードのストリームをリアルタイムで公開、サブスクライブ、保存、処理できます。

記事

API とは

API はアプリケーション・プログラミング・インタフェースの略であり、アプリケーション・ソフトウェアを構築および統合するための一連の定義とプロトコルです。

統合 (インテグレーション) の詳細はこちら

製品

セキュリティを念頭に置き、ハイブリッドクラウド全体で大規模にアプリケーションを構築、デプロイ、運用できるように設計された包括的な統合 (インテグレーション) およびランタイムテクノロジー。 

ハイブリッドクラウドのエクスペリエンスを効率化するホスト型およびマネージド型のプラットフォーム、アプリケーション、データサービスが含まれます。これにより、クラウドネイティブ・アプリケーションの提供に伴う運用コストと複雑さを軽減できます。

クラウドネイティブ・アプリケーションの開発とメンテナンスに役立つ製品、ツール、コンポーネン​トを 1 つのセットとしてまとめたものです。Red Hat AMQ、Red Hat Data Grid、Red Hat JBoss® Enterprise Application Platform、Red Hat JBoss Web Server、 Red Hat の OpenJDK ビルド、Red Hat の Quarkus ビルド、クラウドネイティブ・ランタイム一式、Migration Toolkit for Applications、シングルサインオンおよびランチャーサービスが含まれます。

ハイブリッド・インフラストラクチャ全体でアプリケーションとデータを接続するための統合お​よびメッセージング・テクノロジーの包括的なツール。Red Hat 3scale API Management、Red Hat AMQ、Red Hat Runtimes、変更データキャプチャ、およびサービスレジストリが含まれます。

リソース

トレーニング

無料のトレーニングコース

Red Hat Agile Integration Technical Overview