ReadyAPI の Apache Kafka とイベント駆動型アーキテクチャのサポート

2006年、SoapUI は、シンプルでオープンソースの SOAP API テスト ツールを作るという単一の目標のもとに開発されました。

それ以来、開発者はコードを提供し、貴重なフィードバックを提供して、SmartBear は SoapUI を市場で最も強力な API テストプラットフォームである ReadyAPI に変えてきました。

私たちは、ReadyAPI をあらゆる仕様やプロトコルに対応したテストプラットフォームにすることで、高品質なアプリケーションを提供する際に、テスターや開発者が取り残されないようにすることを目指してきました。レガシーな SOAP サービスから、主流の REST サービスで動くマイクロサービス、MQTT を活用した最先端の IoT ユースケースまで。ReadyAPI は、タイプを問わず、すべての API の品質、パフォーマンス、セキュリティを保証します。

このビジョンを念頭に、ReadyAPI は、Apache Kafka テストの開始や、プロトコルにとらわれない新しいテスト体験により、イベント駆動型アーキテクチャ(EDA)のサポートを拡大できることを誇りに思っています。それでは、当社が EDA をサポートする理由と、ReadyAPI の新機能についてご紹介します。

イベント駆動型アーキテクチャが選ばれる理由

従来、ほとんどのシステムは、データが真実の源であるというデータ中心のモデルで運用されていました。しかし、ビッグデータの時代になって、データがたくさんあれば便利だが、データが増えれば増えるほど処理が遅くなることがわかってきました。ここ数年で、保存データ(サービス指向アーキテクチャ)から、イベント(イベント駆動型アーキテクチャ)に注目する動きが出てきました。

組織は現在、データとデータレイクの蓄積から離れ、移動中のデータに焦点を合わせ、場所を移動しながらデータを追跡するようになっています。 イベント駆動型アーキテクチャへの移行は、データ中心のモデルからイベント中心のモデルへの移行を意味します。 イベント駆動型モデルでは、データは依然として重要ですが、イベントが最も重要なコンポーネントになります。

イベントは、このエコシステムを推進する基本的な側面です。 組織は、あらゆるレベルで見た場合、内部および外部のイベントに対応して行動する必要がある歯車にすぎません。

イベントは、いくつかの主要なビジネスシステムの状態の変化として定義されます。 たとえば、誰かが商品を購入したり、誰かが飛行機のチェックインをしたり、バスがどこかに遅れて到着したりします。 そして、あなたがそれについて考えるならば、イベントは、どんな業界に関係なく、常にどこにでも存在します。

イベントの価値は、関連する一連のイベントが行動を表すことです(たとえば、アイテムが追加されてからショッピングカートから削除された、エラーが 24 時間ごとに繰り返される、ユーザーが常に特定の順序でサイトをクリックするなど)。 関連する一連のイベントは、一般にストリームと呼ばれます。 ストリームは、IoT デバイス、Web サイトにアクセスするユーザー、データベースへの変更、またはその他の多くのソースから送信されます。

イベント駆動型アーキテクチャでは、イベント通知が送信されると、システムは何が起こったか(状態の変化が発生したなど)をキャプチャし、誰が/いつ要求しても返信を送信できるように待機します。そのメッセージを受け取ったアプリケーションは、応答するか、あるいは状態の変化が起こるまで応答を待つことができます。

イベント駆動型アーキテクチャを中心に構築されたアプリケーションは、より機敏で、スケーラブルで、状況に応じた、応答性の高いデジタルビジネスアプリケーションを可能にします。 これが、このアーキテクチャアプローチが爆発的に増加している理由です。

詳細については、このイベント駆動型アーキテクチャのデモをご覧ください。

なぜ Apache Kafka なのか

さて、この新しいストリーミングデータパラダイムをサポートするには、さらなるテクノロジーが必要です。 ストリーミングデータを操作するための最も人気のあるツールの 1 つは、Apache Kafka です。 Apache Kafka は、何千もの企業で使用されているオープンソースの分散イベントストリーミング プラットフォームです。 高性能データパイプライン、ストリーミング分析、データ統合、およびミッションクリティカルなアプリケーションについて考えてみてください。 Kafka を使用すると、リアルタイムストリーミングアプリケーションを構築できます。その後、それらはストリームに反応して、リアルタイムデータ分析を実行し、反応、集約、リアルタイムデータフローに参加し、複雑なイベント処理を実行します。

Kafka は、セットアップと使用が簡単なため非常に人気があります。そのため、大量のデータを処理する多くの大企業が Kafka を使用しています。 それで、それはどのように機能しますか?

クライアントアプリケーションが RESTful、GraphQL、SOAP、またはその他の同期 API にリクエストを送信すると、レスポンスを待ちます。 非同期 API を使用する場合、クライアントは応答を必要とせず、サーバーは応答を送信しません。 このような API は、イベント駆動型アーキテクチャを実装します。

典型的なプロセスは次のようになります。

  • パブリッシャー(Kafka 用語で言えばプロデューサー)は、ブローカーにイベントをポスト(リクエストを送信)します。イベントとは、送信するデータの一部です。トランザクションに関する情報を含む JSON オブジェクトであったり、データベースに新たに作成されたオブジェクトの詳細であったりと様々です。

あるタイプのイベントを別のタイプから分離するために、プロデューサーはブローカー内で指定されたチャネル(またはトピック)の1つにイベントを送信します。

  • 別のアプリケーションが特定のトピックに関連するイベントを必要とする場合、そのアプリケーションは必要なチャネルにサブスクライブします。 パブリッシャーがそのチャネルにイベントを投稿すると、サブスクライバー(またはコンシューマー)はイベントを受信し、ビジネスロジックで必要に応じてイベントを操作できます。

次に例を示します。Web ストアがあるとします。 ユーザーがログインすると、クライアントアプリケーションはログインイベントを投稿します。 ユーザーが注文を作成すると、クライアントアプリケーションは注文の詳細を含む別のイベントを投稿します。 クライアントアプリーションはもう気にしません。 その間、一部の内部アプリケーションはブローカーから注文のデータを取得し、何らかの方法でそれを処理できます。 たとえば、データベースに保存したり、メールを送信したりします。

では、ReadyAPI はどのようにして Apache Kafka のテストをサポートするのでしょうか?

簡単にできます。現在の Kafka ストリーム用のテストツールは、煩雑で複雑で時間がかかります。無限に続くようなコーディングが必要です。ReadyAPI を使えば、ポイントアンドクリックの簡単なインターフェースで Kafka エンドポイントを検証するテストアサーションを作成することができます。

アサーショングループ

すべての ReadyAPI アサーションは、アサーショングループの追加に対応するよう更新されました。アサーショングループを使用すると、スクリプトやコードを使用せずに複雑なアサーションロジックを追加することができます。

Kafka API の追加/インポート

プロトコルにとらわれない作成ツールを使用して、Kafka ブローカーとトピックを ReadyAPI に追加します。 AsyncAPI 仕様を使用して Kafka サービスを文書化するチームは、シングルクリックでこれらのサービスを ReadyAPI に追加できるようになりました。

Kafka テストを作成する

プロトコルにとらわれないテスト機能により、Kafka テストを簡単に開始できます。選択したブローカーやトピックに対して、Kafka メッセージ、ヘッダー、パーティション、キーを生成および消費します。データベース、スクリプト、その他の API からの動的なデータを公開メッセージに追加します。受信したメッセージとメタデータを、一連のアサーションに対して検証します。

フレーズで:運用の簡素化

Kafka はオープンソースであり、毎日何千もの企業によって使用されています。 そして、さらに進んでいます。 ReadyAPI を使用している間、SmartBear は、テストの生産性を向上させ、タイプに関係なく高品質の API の提供を加速することに引き続き取り組んでいます。

Apache Kafka サポートが追加されたことで、市場で最も堅牢なプロトコルに依存しない API テストツールを提供することに、今後も取り組んでいきます。

詳細については、Apache Kafka Testing Demonstrationをご覧いただくか、ドキュメントページをご参照ください。

製品紹介ページはこちら。

ReadyAPI – REST, SOAP などの Web API テストツール ReadyAPI 製品紹介ページ、および評価版のダウンロードはこちら。

この資料は、SmartBear の Blog で公開されている「Introducing Apache Kafka & Event-Driven Architecture Support in ReadyAPI」の日本語参考訳です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする