こんにちは、ソリューションアーキテクトの蒸野(ムシノ)です。
今回は、Red Hat Summit: Connect | Japan 2022でお話させていただきました「Application Manages Servicesの紹介」を今一度ご紹介させていただけたらと思います。 過去の記事でもRed Hat マネージサービスについては既に紹介させていただいていますので、こちらをご覧ください。本記事では一部のマネージドサービスに特化した内容でご紹介をさせていただきたいと思います。
Red Hat ではマネージドサービスを推奨する理由として、次のように説明しています。
特に運用煩雑性からの開放と安定的なインテグレーション基盤を提供するためにマネージドサービスの選択肢を増やしています。
そして、Red Hat Cloud Services は次の3つに分類され「Managed OpenShift 」「Application Services」「Data Services」から構成されています。本記事ではこの「Application Services」にフォーカスして説明したいと思います。
Application Services
それでは簡単ではありますが、Application Servicesである代表的な3つのサービス概要とバリューポイントご紹介いたします。
1. Red Hat OpenShift API Management (RHOAM)
マネージドのOpenShiftで動作するホステッドかつマネージドのAPI管理サービスであり、APIファーストのアプローチにより顧客により早く価値を提供、それに関わる運用コストを削減します。
関連記事: rheb.hatenablog.com
2. Red Hat OpenShift Streams for Apache Kafka (RHOSAK)
ストリーム処理アプリケーションのためのホステッドかつマネージドなKafkaのサービスであり、オンプレミスやハイブリッドクラウド環境にまたがるリアルタイムアプリケーションの開発に際しての運用コストの削減と複雑さの軽減を実現します。
関連記事: rheb.hatenablog.com
3. Red Hat OpenShift Connector (RHOC)
Red Hat OpenShift Streams for Apache Kafkaと統合され、ホステッドかつマネージドですぐに利用可能なコネクターサービスとなります。ハイブリッドクラウド環境におけるシステム間の データストリーミングの複雑さを軽減し、Time to Marketまでの時間の短縮を実現します。
関連記事: rheb.hatenablog.com
Application Manages Services のユースケース
下記の例は代表的なシステムインテグレーション課題の一つであるレガシーシステムとのデータ統合に関するものです。レガシーシステムと新サービスをインテグレーションする場合どのようにすれば既存のシステムに影響を与えず、新サービス側ではクラウドネイティブなアーキテクチャを取り込みビジネスアジリティを実現するかという問題に直面している方も多いのではないでしょうか?今このようなケースで悩まれている事例が最も多く見受けられます。
このユースケースの解決方法として、Red Hat ではレガシーシステム側からCDCを使って変更データをイベントとして処理し、ニアリアルタイムなデータ連携を実現し、OpenShift Streams for Apache Kafka にてデータストリーミングする方法をご紹介させていただいております。これには上記でご紹介したマネージドサービスを組み合わすことで運用複雑性の軽減やセルフマネージドによるアジリティを活かしつつ、既存システム側に大きな影響を与えず新システム側にニアリアルタイムなデータ統合を実現することが可能となります。
インテグレーションデモのご紹介
それでは、実際このユースケースを実現するため、Application Servicesをどのように組み合わせていくのか、Red Hat Summit: Connect でのデモの一部をご紹介したいと思います。 下記はデモで示した仮のシステム構成図となっていますが、レガシーアプリケーションから「Red Hat OpenShift Connector」のCDCを使って「Red Hat OpenShift Streams for Apache Kafka」にイベントを通知、「Camel-K」を使ってイベントデータを変換し新データベースにデータを同期します。このデータベースの内容をバックエンドAPIが取得し、「Red Hat OpenShift API Management」がAPI公開します。
レガシーアプリケーションのデータ更新
このレガシーシステムは注文システムをイメージしています。注文データのCSVファイルを更新することでレガシーシステムにデータをロードし、レガシーシステムのデータベースを更新します。
ここでは、注文データがロードされていることを示しており、注文データが新規で10件入ったことを示しています。
Red Hat OpenShift Streams for Apache Kafkaでのイベントデータ確認
ではCDCによりイベントデータが連携されてきたところを確認したいと思います。 Red Hat OpenShift Streams for Apache Kafka でのKafka Instances>Topicタブをクリックするといくつかのトピックが表示されます。CDCによるイベントデータを見るには「shared-db-earth.dbo.Orders」をクリックします。
次に 「shared-db-earth.dbo.Orders」トピックのMessages タブをクリックするとCDCで連携されてきたイベントデータを参照することができます。更に詳細情報を確認したい場合には「Show more」をクリックします。そうすることでイベント情報の詳細を確認することができます。
Camel-Kによるデータ抽出
次にイベントデータにはメタデータを含め様々な情報が通知されてきますので、ここでは必要なデータのみを抽出します。 Camel-Kを使ってAtlasMapでデータマッピングを行い、別のトピックにデータを連携します。
Camel-Kでデータ変換したトピックの中身をみてみましょう。 先程「Red Hat OpenShift Streams for Apache Kafkaでのイベントデータ確認」で行った操作と同様の方法で「incoming-topic」を見てみます。 すると必要な「Order」データのみ通知されてきていることが分かります。
バックエンドAPIのデータ確認
次は、「incoming-topic」からPostgreSQLにデータがInsertされた結果、BackendAPIが Order データが表示できることを確認します。 バックエンドAPIのURLにアクセスしバックエンドAPIのデータを確認してみます。
問題なくBackendAPIがデータが表示されていますので「incoming-topic」からPostgreSQLにデータが連携されたことが確認できました。 これで Red Hat OpenShift API Management に統合する前準備がようやく完了しました。
Red Hat OpenShift API Management でのバックエンドAPIの統合
次に「Red Hat OpenShift API Management」にアクセスします。OpenShiftのコンソール上からトポロジを確認すると、下記にように Red Hat OpenShift API Management のコンポーネントが表示されているかと思います。
ActiveDoc によるAPI確認
では、最後に3scaleのコンソール上からAPIをテストしてみたいと思います。 3scaleでは管理ポータル上のActiveDocからAPIテストができますので、今回はこの上からAPIの動作確認をしてみたいと思います。 APIキーを設定し、「Try it out>Execute」を実行します。
問題がなければレスポンスとして200コードが返り、「Order」データが表示されることが見ることができます。
最後に
如何でしたでしょうか?
インテグレーションデモを交えた、Application Manages Servicesのご紹介をさせていただきました。
Application Manages Services の始め方としては簡単で、Red Hat アカウントを作成後、Red Hat Hybrid Cloud Consoleにアクセスするだけです。
是非一度ご利用いただけたらと思います。
本記事のインテグレーションデモについては、下記のRed Hat Summit: Connect | Japan 2022(オンライン) からご覧頂けますので、是非ご登録いただけたらと思います。 www.redhat.com
参照:
Developer SandboxでRed Hatアカウントを作成: developers.redhat.com
Red Hat Hybrid Cloud Consoleへアクセス: console.redhat.com