IoT のエッジ コンピューティングで Kafka を使用する方法

IoT のエッジ コンピューティングで Kafka を使用する方法

[51CTO.com クイック翻訳] エッジ テクノロジーの分野では、製造、自動化、航空、物流、小売などの業界のアプリケーションに取り組んでいる開発者は、Apache Kafka をエッジに展開するべきか、「実際の」データ センターに展開するべきか、それともパブリック クラウド インフラストラクチャに展開するべきかという疑問を頻繁に考えます。

この記事では、エッジ コンピューティング分野の開発者に、モノのインターネット (IoT) のエッジにおける Kafka のさまざまなユース ケースとアーキテクチャの使用方法を紹介します。記事の最後では、イベント ストリーミング プラットフォームとしての Kafka が、エッジにある他の IoT フレームワークや製品を補完して、大規模なリアルタイム データ統合とエッジ処理を実現する方法についても説明します。

複数の Kafka クラスターの正規化

現在、Apache Kafka のマルチクラスターおよびデータセンター間の展開は、業界では一定の標準となっています。エッジの Kafka はスタンドアロン プロジェクトとしてデプロイできますが、ほとんどの場合、全体的な Kafka アーキテクチャの一部になります。多くの企業は、次の理由から複数の Kafka クラスターを作成します。

  • 独立したプロジェクト要件。
  • ハイブリッド統合アプローチ。
  • エッジコンピューティング。
  • コンポーネントの集約。
  • プラットフォームの移行。
  • 災害復旧。
  • 地域または大陸間の通信に必要なグローバル アーキテクチャ。
  • 企業間のコミュニケーション。

「エッジ」または「エッジ コンピューティング」とは何ですか?

Kafka をエッジに導入することを検討する前に、まず「エッジ テクノロジー」の定義を理解しましょう。 Wikipedia には、「エッジ コンピューティングは、コンピューティングとデータ ストレージを必要な場所に近づけることで、応答時間を短縮し、帯域幅を節約する分散コンピューティング パラダイムです。」と記載されています。同時に、コストの削減、システムの柔軟性の向上、懸念事項の分離などの利点もあります。

エッジにおける Apache Kafka

現在、エッジ コンピューティングに Kafka を適用する方法については、業界では次のようなさまざまな見解があります。

  • エッジ クライアントのみ: Kafka クライアントはエッジで実行されます。 Kafka クラスターは、データセンターまたはパブリック クラウド環境にデプロイされます。
  • すべてがエッジにあります: Kafka クラスターと Kafka クライアントはエッジ (たとえば、工場内のさまざまなセンサー) にデプロイされます。
  • エッジとリモート: Kafka クラスターはエッジにデプロイされます。一方、Kafka クライアント (そのエリア内のスマートフォンなど) はエッジ近くで実行されます。

エッジの Kafka には、次のような比較的柔軟で幅広い用途があることがわかります。

  • 産業用 IoT (IIoT) 現場のエッジにある Kafka クライアントは、C で記述してセンサーのマイクロコントローラーにデプロイできます。このようなセンサーは通常、数千バイトのメモリしか持たず、一定期間使用できます。
  • 通信ビジネスのエッジでは、完全な分散型 Kafka クラスターを StarlingX (https://www.starlingx.io/) 上で実行できます。 StarlingX は、Kubernetes をベースとしたオープンソースのプライベート クラウド アーキテクチャ スタックであり、IIoT、通信、ビデオ配信、および超低レイテンシなどの厳しい要件を持つその他のエッジ環境で使用できます。
  • 展開を通じて、従来の銀行や保険会社のコアハードウェアとエッジハードウェアが接続されます。

ほとんどの場合、エッジ Kafka はシステムのエッジにデプロイされた Kafka クラスターを指すことがわかります。対応する Kafka クライアント プログラムは、ローカルまたは近くで実行できます。もちろん、場合によっては「近く」が数マイル離れた場所を意味することもあります。

エッジでの Kafka のユースケース

以下では、さまざまな企業でエッジの Kafka が運用されているユースケースについて説明します。

  • 産業用 IoT: リアルタイムのエッジ統合と処理は、最新の IoT アーキテクチャの成功の鍵となります。インダストリー 4.0 では、予知保全、品質保証、プロセス最適化、サイバーセキュリティなど、このようなユースケースが豊富にあります。その中で、Kafka を使用してデジタル ツイン (Digital Twin、訳者注: 対応する物理デバイスのライフサイクル全体を仮想空間でシミュレート、マッピング、反映すること) を構築することは、最も一般的なシナリオの 1 つです。
  • 小売業: ウォルマートのような小売業者、スターバックスのようなコーヒーショップ、Amazon Goのような流行の店など、デジタル変革はさまざまな面で革新をもたらします。これらには、顧客向けの 360 度エクスペリエンス、販売業者と消費者間のクロスセル、他のパートナーサプライヤーとのコラボレーションが含まれます。
  • 物流: 大規模なリアルタイム データの相関関係は、あらゆる物流シナリオを変える重要な要素です。これらには、エンドツーエンドの荷物追跡と配送、地元のセルフサービスステーションとのドローン(または自律型)通信、物流センターでの処理の高速化、共有車両の調整と計画、スマートシティでの信号管理などが含まれます。

上記のユースケースに関係なく、エッジでの Kafka の一般的なアーキテクチャは次のようになります。

エッジコンピューティングの課題

企業が工場、小売店、コーヒーショップなどのシナリオにさまざまな革新的なリアルタイム アプリケーションを導入し、エッジ サイトにデータを配信しようとすると、次のような課題に直面することがよくあります。

  • ネットワークの状態が悪く、その他多くの制限があるため、エッジにあるさまざまなハードウェア、マシン、デバイスをスムーズに統合することは困難です。
  • 多くのユースケースでは、大規模かつリアルタイムの処理が必要です。そして、このすべての処理は、リモート データ センターや数百マイル離れたクラウドではなく、オンサイト エッジで実行する必要があります。
  • さまざまなテクノロジーとプロトコルをエッジで統合する必要があります。さらに、反対側のビッグデータ ツールと通信するには、さまざまな従来のプロトコルや独自のプロトコルがトンネルを通過する必要があります。
  • ハードウェア リソースと人員が限られています。コスト上の理由により、IT 専門家がすべてのエッジ サイトにアクセスしてハードウェアの操作とメンテナンスを実行することはできません。
  • あらゆる種類のデータを大規模かつリアルタイムでローカルに保存し、処理する必要があります。同時に、このデータは、さらに集約、処理、分析するためにデータセンターまたはクラウドにコピーする必要があります。さらに、コマンドやイベントを送信することで単一のノードによる各エッジサイトの制御を実現するために、各種通信は双方向であることが望ましい。

エッジコンピューティングのための Kafka アーキテクチャ

エッジでの Kafka のデプロイメント ソリューションについて説明する前に、高可用性エッジ アーキテクチャが必要かどうかという 1 つの質問を事前に明確にする必要があります。

実際、エッジ コンピューティングでは必ずしも高い可用性が求められるわけではありません。本当に必要な場合は、従来の Kafka クラスターをデプロイします。そうでない場合は、エッジにシンプルで低コストの Kafka ブローカーを設定するだけです。また、数百のサイトで展開する必要がある場合は、既製のハードウェア機器の実装が容易になります。

次の図は 3 つのエッジの位置を示しています。各サイトに Kafka クラスターがデプロイされ、各クラスターには異なる Kafka コンポーネントが含まれます。

3 つ以上の Kafka Broker を使用したエッジでの回復力のあるデプロイメント

Kafka とそのエコシステムは、単一のノードに障害が発生した場合でも高可用性とゼロダウンタイムを保証するように設計されています。次の図に示すように、分散システムをデプロイするには、少なくとも 3 つの Kafka ノードと 3 つの Zookeeper ノードが必要です。その他のコンポーネントでは、運用の信頼性を確保し、データ損失を防ぐために、少なくとも 2 つのノードが必要です。

デプロイメントのベスト プラクティスについては、Apache Kafka および Confluent Platform リファレンス アーキテクチャの記事を参照してください。もちろん、エッジではトラフィックの負荷とスループットは通常低いため、SLA が許せばメモリとディスク容量が少なくても十分な場合があります。

Kafka ブローカーを使用したエッジでの非弾性デプロイメント

エッジに「軽量 Kafka クラスター」を展開し、より大きな中央の Kafka クラスターとデータを同期または複製する必要性が高まっています。ただし、ハードウェア自体の制限と高可用性に対する SLA 要件の低さにより、エッジには 1 つの Kafka Broker と 1 つの Zookeeper のみがデプロイされます。下の図に示すように、Kafka 環境全体を 1 台のサーバーにデプロイすることもできます。

ただし、この展開ソリューションには明らかな欠陥があります。データ間のレプリケーションがないため、ノードまたはネットワークに障害が発生してダウンタイムが発生すると、データが失われるリスクがあります。もちろん、この単一ノードの Kafka デプロイメント ソリューションには、次のような利点があります。

  • 生産者と消費者の分離を実現します。
  • バックプレッシャーを効果的に処理できます。
  • ブローカーが 1 つしかない場合でも、大量のデータをリアルタイムで処理できます。
  • ディスクに保存します。
  • データを再処理する機能。
  • 統合には Kafka Connect を、ストリーム処理には Kafka Streams または ksqlDB を、管理には Schema Registry を使用できます。これはまさに、Kafka ローカル コンポーネントの「ファミリー バケット」です。

ZooKeeperを削除するとエッジのKafkaが役立つ

Hadoop や Spark などの他の分散システムと同様に、Kafka は操作が難しいだけでなく、ZooKeeper に過度に依存しているため、スケーラビリティも低くなります。ほとんどの IoT プロジェクトでは、全体的な展開に長い時間がかかることから、Kafka を軽量化して操作しやすくするために ZooKeeper を削除することをお勧めします。

エッジデバイスとクラウドサービス間のゲートウェイとして Kafka を使用する

構成によっては、エッジ デバイスをローカル ゲートウェイと通信させたい場合があります。この時点で、ゲートウェイ スタイルの Kafka アーキテクチャ ソリューションを使用できます。たとえば、工場では、複数のマシンまたは生産ラインがエッジ デバイスと見なされます。ゲートウェイとして機能する Kafka クラスターにデータを送信するには、それぞれの Kafka クラスターと統合する必要があります。これに基づいて、Kafka クラスター ゲートウェイで、ローカルで直接分析を実行し、データをフィルター処理または変換し、最終的にリモートの大規模な Kafka クラスターに送信して集約することができます。

上の図に示すように、まず、2 つの独立した工場が、ローカル データ処理を実現するために、各場所に非弾性の単一の Kafka Broker を展開しました。次に、弾力性のある Kafka クラスター ゲートウェイが 3 つの Kafka ブローカーを集約し、ファクトリ内でローカルにデータを処理します。その後、重要な前処理済みのデータのみがリモート Kafka クラスター (図の Confluent Cloud) に転送されます。最後に、クラウド内の Kafka クラスターは、さまざまなプラントからのデータを集約し、他のビジネス アプリケーションや分析ツールと統合します。

OEM またはハードウェア コンポーネントとしてのエッジでの Kafka

企業にとって、エッジにハードウェアをインストールするのは、ローカル データ センターやパブリック クラウドにインストールするよりもはるかに複雑で面倒です。エッジで標準化された Kafka コンポーネントのインストール方法を採用すると、作業負荷と潜在的なリスクが大幅に軽減されます。

現在、OEM ハードウェア デバイスの構築を支援できるハードウェア サプライヤーが数十社あります。もちろん、リモート管理や DevOps ツールを使用して、必要なソフトウェア コンポーネントをすべてインストールすることもできます。

エッジでの Kafka クラスターのインストールと操作を簡素化するために、同社は Hivecell (https://hivecell.io/) に代表される製品ボックスをリリースしました。これには Kubernetes、Kafka エコシステム、Confluent Operator (https://www.confluent.io/confluent-operator/) ツール、およびその他のビジネス アプリケーションがプリインストールされています。エッジの Kafka 環境での操作を簡素化および自動化します。ユーザーは、1 つまたは複数の製品ボックスをエッジ ロケーションに発送するだけです。ローカル WiFi に接続すると、他のすべての操作をリモートで実行できます。同社は、顧客が技術者を必要とせずにエッジでソフトウェアを導入および保守できるようになるとも主張している。

通信、接続、統合、データ処理

上の図に示すように、Kafka 環境には Kafka Broker と Zookeeper だけが含まれるわけではありません。クラウド、オンプレミス、エッジのいずれの場合でも、通信、接続、統合、データ処理は Kafka インフラストラクチャの重要なコンポーネントです。

具体的には、エッジからリモートまでの Kafka Broker と Kafka クライアント間の通信プロセスは、デバイス -> エッジの Kafka -> レプリケーション -> データセンターとクラウドの Kafka クラスター -> データ分析とリアルタイム処理です。通常、このような通信は双方向で行われます。 Kafka のネイティブ コンポーネントごとに、大規模なリアルタイム通信、統合、およびデータ処理を実行するために、Kafka バックエンドを管理するだけで済みます。以下の側面が関係します。

  • Kafka Connect: MQTT (メッセージ キュー テレメトリ トランスポート)、OPC-UA、FTP、CSV、PLC4X (Modbus、Siemens S7、Beckhoff、Allen Bradley の 4 つのプログラマブル コントローラー (PLC) などの従来の独自の IIoT プロトコルのセット) が含まれます。
  • ミラー メーカーと Confluent Replicator: 2 つの Kafka クラスター間で一方向または双方向のレプリケーションを実装します。
  • Kafka クライアント (プロデューサー/コンシューマー): Java、Python、C++、C、Go、Javascript などの言語をサポートします。
  • データ処理: ストリーム処理 (ステートレス ストリーム ETL やその他のステートフル アプリケーションを含む) には、Kafka Streams または ksqlDB を使用します。
  • プロキシ: HTTP(S) 通信には REST プロキシを使用し、MQTT 統合には MQTT プロキシを使用します。
  • スキーマ レジストリ: ガバナンスとスキーマの適用を担当します。

エッジのハードウェア リソースが限られているため、Kafka フル スタックがエッジのニーズを真に満たせるように、最初に全体的なアーキテクチャとデータ通信を計画する必要があることがわかります。

ハイブリッドアーキテクチャ

モノのインターネットの実際のニーズは多岐にわたります。 24 時間 365 日のリアルタイム展開、データ損失ゼロ、遅延のないリアルタイム処理を前にすると、Kafka アーキテクチャだけに頼ることができない場合があります。この時点で、Kafka とのエンドツーエンドの統合を実現するには、他の IoT フレームワークまたはソリューションを組み合わせる必要があります。

上の図に示すように、Siemens MindSphere (強力で広範囲にわたるが、複雑で高価な IoT ソリューション) を工場現場でのゲートウェイまたはプロキシとして使用できます。もちろん、HiveMQ をスケーラブルな MQTT クラスターとして展開して、マシンやデバイスに接続することもできます。

場合によっては、Kafka を IoT のゲートウェイまたはプロキシとして直接使用して、PLC または分散制御システム (DCS) に接続することもできます。同時に、Kafka は AWS IoT や Google Cloud の MQTT Bridge などの IoT ソリューションに接続して、さらに処理や分析を行うこともできます。

データ通信は双方向であることが多いため、どのアーキテクチャを選択するかに関係なく、作業現場や他の IoT デバイスからデータを抽出し、それをリアルタイムで処理して相関させ、最終的に制御イベントをマシンに送り返すことができる必要があります。たとえば、予測分析では、まず TensorFlow などのクラウド ツールを使用して分析モデルをトレーニングし、次にエッジに分析モデルをデプロイしてリアルタイム予測を行う必要があります。

他の IoT フレームワークやソリューションと組み合わせることで、Kafka エコシステムが効果的に補完されるだけでなく、それぞれが異なる機能的なユースケースに焦点を当てることもできることがわかります。たとえば、Kafka はデバイス管理とモデルのトレーニングに重点を置くことができます。主要なクラウド プロバイダーは、デバイス管理用の IoT サービス、クラウド エージェント、分析ツールを提供できます。オープンソース フレームワーク Eclipse を使用してデジタル ツインを構築できます。

分散システムの組み合わせが多すぎる場合は注意が必要

もちろん、ダウンタイムやデータ損失のない、エッジ コンピューティングとハイブリッド アーキテクチャ向けのスケーラブルで信頼性の高いストリーミング構造を構築したい場合、複数のミドルウェア ツールを統合した環境でこれを実現するのは実際には困難です。つまり、組み合わせるツールの数が増えるほど、サービス中断やデータ損失のリスクが高まります。たとえば、NiFi (翻訳者注: Apache の NiFi プロジェクトはリアルタイム データ ストリーム処理システムです) には独自の分散インフラストラクチャがあるため、プロデューサーから NiFi および Kafka を経由したプロセス全体が、24 時間/7 日間のエンドツーエンドの稼働時間で最終的にコンシューマーに到達できるようにする必要があります。同様に、Kafka Connect や Kafka Streams などのネイティブ ツールが Kafka Topics を使用してバックグラウンドで高可用性を提供する場合も、ダウンタイムやデータ損失なしで 24 時間 365 日これを保証する必要があります。したがって、データ損失のない大規模なリアルタイム処理には、「センサー ABC -> NiFi (キャプチャ) -> Kafka トピック A -> NiFi (変換) -> Kafka トピック B -> NiFi (ロード) -> アプリケーション XYZ」などのパイプライン アーキテクチャを慎重に使用してください。

要約する

エッジコンピューティングは、多くの場合、アーキテクチャ全体の一部に過ぎませんが、この分野の「ダークホース」として、エッジの Kafka は、ハイブリッドアーキテクチャの展開を通じてデータ処理速度を向上させ、ネットワーク伝送コストを削減し、システム全体に優れたスケーラビリティ、信頼性、堅牢性をもたらすことができます。

原題: Apache Kafka は IoT プロジェクトのエッジにおける新たなトレンド、著者: Kai Wähner

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  2,500億ドル! GoogleはAmazon AWSをターゲットにSalesforceを買収したい

>>:  私たちは本当にKubernetesを理解しているのでしょうか?

推薦する

ホテル業界はミニプログラムの助けを借りて、マーケティングと利益の急速な成長をどのように達成できるでしょうか?

月収10万元の起業の夢を実現するミニプログラム起業支援プラン現在、WeChatミニプログラムはユーザ...

攻撃を受ける

RT、4日連続で攻撃方法を変えています...実際、誰がビッチなのか大体推測できますが、それは問題では...

当面収益を上げていないウェブサイトの所有者を励ましてください

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス私のウェブマスターの友人...

ウェブサイト構築のメインラインを把握する:関連性の高いテーマを持つ高品質のオリジナルコンテンツ

今日のインターネット時代には、何万ものウェブサイトが存在し、毎日多くの新しいウェブサイトが作成されて...

マーケット運営者として、インターネットの運営とプロモーションのチャネルを知っておく必要があります。

これはおそらく、史上最も包括的なオンライン運営およびプロモーションチャネルであると信じています。起業...

今年最も高速な海外 VPS サーバー 10 個を推奨します。あなたにぴったりのものが必ず見つかります!

最も速度が速い海外の VPS はどれですか? 2019 年に最も速い海外 VPS は何ですか?多くの...

チーム向けクラウド コンピューティング サービスの比較

これで、チームをクラウドに移行する準備が整いました。顧客とチームはクラウド内に存在します。携帯電話、...

Tothost Vietnam VPSはいかがでしょうか? CMCラインベトナムVPSのレビュー

ベトナムのVPS業者Tothostは、ベトナムのハノイにCMCとVNPTのVPSを保有しています。K...

データセンターの仮想化による 10 大メリット

企業のビジネスが拡大するにつれて、データセンターはますます大きなプレッシャーに直面しています。より多...

Kubernetesを早期に導入しない

会社が Kubernetes を導入する場合、メインラインから外れた部分にエネルギーを費やす可能性が...

起業家の自叙伝:ユーザーから最初の「資金調達」をどう得るか?

時は経つのは早いもので、気がつけば3年が経っていました。 ProcessOn は、小さな会社としてス...

この記事は、フォグ コンピューティングとエッジ コンピューティングの違いを理解するのに役立ちます。

1. フォグ コンピューティングとエッジ コンピューティングの違いは何ですか?フォグコンピューティン...

ウェブサイトのユーザー エクスペリエンス分析: ページ ナビゲーションの原則

有名なグリム童話では、ヘンゼルとグレーテルは継母が自分たちを深い森で迷わせようとしていることを知って...

UCloudクラウドホストは、ワンクリックでデータセキュリティを制御するためにフルディスク暗号化を独占的に開始しました

UCloud は、クラウド ホストのフルディスク暗号化セキュリティ機能を独占的にリリースします。ユー...

「真歓伝説」の検索結果から見る企業SEMキーワード選定の新たな方向性

最近では、多くの企業が SEM に注目しています。サイト上で SEO 最適化を適切に行うことに加え、...