Red Hat Edge validated patternsでエッジコンピューティングにトライしよう!

みなさん、こんにちは!
Red HatでOpenShiftのソリューションアーキテクトをしている小野です。

エッジコンピューティングのプラットフォームをオープンソースベースで検討する場合、単一のソフトウェアで全てをカバーする事は難しく、多くのソフトウェアを組み合わせて技術スタックを組み上げる必要があります。パズルの様に複数の組み合わせのパターンを一つずつ検証するとなると非常にハードルが高いかと思います。

そこで今回は、エッジコンピューティングのユースケース毎にRed Hatにて検証済みのアーキテクチャパターンをまとめた「Red Hat Edge validated patterns」についてご紹介します。

 

Red Hat Edge validated patternsとは

Red Hat Edge validated patternsは、エッジコンピューティングのユースケース毎にRed Hatにて検証済みのパターンを公開したものです。エッジコンピューティングのプラットフォームの検討の促進、早期のPoCに繋げる事を目的に、GitHubにサンプルが公開されています。

各パターンは、基本的にRed Hatの製品とエコシステムをベースにデザインされています。多くのソフトウェアを利用していて難しさを感じることもあるかもしれませんが、「こんなユースケース実現できないかな」と思った時のリファレンスとしても活用できるかと思います。

www.redhat.com

公開されている内容(2022.3.30時点)

各パターンの詳細は以下の「Hybrid Cloud Patterns」というページに記載されています。

hybrid-cloud-patterns.io

 

現状は大きく、Multicloud GitOpsIndustrial Edge(産業用エッジ)Medical Diagnosis(医療診断)の3つのパターンが公開されています。

 

Multicloud GitOpsは、ArgoCDベースのOpenShift GitOpsAdvanced Cluster Management for Kubernetesを用いてGitを神様として複数のクラウドへ展開されたOpenShiftクラスタへアプリケーションをデプロイするユースケースです。Red Hatのポートフォリオアーキテクチャチームによって作成されました。

 

Multi-Cloud Architecture

 

github.com

 

参考記事: 

rheb.hatenablog.com

 

Industrial Edgeは、ドイツのRed Hatのミドルウェアソリューションアーキテクトによって作られたデモがベースになっています。同じアーキテクチャで他のユースケースにも簡単に拡張できます。
工場内のラインサーバのデータを収集し、異常検出AIを実行しつつ、クラウドで学習しモデル改善を図るアーキテクチャで実装されており、工場内にはRed Hat AMQとAIアプリケーションが、中央のデータセンターへはOpen Data HubによるML環境がそれぞれデプロイされます。

 

Demo Scenario

 

github.com

 

Medical Diagnosisは、胸部X線写真を自動で分析するデータパイプラインのデモです。
Cephなどのオブジェクトストアに写真をアップロードすると、オブジェクトストアがkafkaトピックを通知、KnativeにてトリガーしAIを実行します。Grafanaダッシュボードにはパイプラインがリアルタイムで表示され、受信、処理、匿名化画像、メトリクス情報が表示されます。

 

Pipeline dashboard

 

github.com

 

参考記事: 

rheb.hatenablog.com

 

導入方法

各パターン共通して、OpenShift GitOpsを用いてデプロイされます。
OpenShiftのOperatorHubにあるValidated Patterns Operatorを用いると簡単に試すことができますので、Operatorを利用した手順を以下にまとめます。

 

1. GitHubのアカウントを作成し、試したいパターンのGitリポジトリをFork

(*) ここではIndustrial Edgeパターンを例として示します。

(*) OpenDataHubはOpenShift v4.9以降だとうまく動かないため、v4.8でお試し下さい。

 

f:id:yudaiono:20220330200709p:plain

 

2. OpenShiftコンソールのOperatorHubにて 「Validated Patterns Operator」を検索

f:id:yudaiono:20220330182905p:plain

 

3.  Validated Patterns Operatorをインストール

f:id:yudaiono:20220330182939p:plain

 

4. Patternの[インスタンスの作成]を押下

f:id:yudaiono:20220330183157p:plain

 

 

5. Patternの作成画面にて以下の項目を入力し[作成]ボタンを押下

 

  • 名前 → 任意の名前を入力
  • Cluster Group Name → 任意の名前を入力
  • Target Repo → ForkしたGitHubリポジトリのURLを入力
    • GitHubの[Code]ボタンを押して表示されるURL
    • (例) https://github.com/[アカウント名]/industrial-edge.git
  • Target Revision → mainを入力

 

f:id:yudaiono:20220330200919p:plain

f:id:yudaiono:20220330201006p:plain

 

デモアプリのドメインを確認します。

oc get route -n manuela-stormshift-line-dashboard -o jsonpath='{.items[*].spec.host}{"\n"}'

line-dashboard-manuela-stormshift-line-dashboard.hogehoge

https://line-dashboard-manuela-stormshift-line-dashboard.hogehoge へブラウザでアクセスし、以下の画面が表示されたら成功です。

何分か経つとラインサーバーのシミュレータから異常値が出力され、異常検出AIにて検知し、異常があった旨のアラートが出力されます。

 

f:id:yudaiono:20220330195133p:plain

 

まとめ

今回は、Red Hatが公開するエッジコンピューティングの検証済みパターン「Red Hat Edge validated patterns」を紹介しました。オープンソースを活用したエッジコンピューティングの実装の検討に参考になると思いますので、ぜひお試しください!

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。