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を理解しているのでしょうか?

推薦する

クラウドのエンドポイントセキュリティについて知っておくべきこと

クラウド セキュリティは、今日のテクノロジー業界で流行語となっていますが、それには十分な理由がありま...

なぜ「プラットフォーム+産業エコロジー」が企業の不可逆的な未来なのか?

2020年の風向きは予測できません。誰もが、現在の霧を通して未来を垣間見て、美しいジェダイの反撃を開...

Wikibon 2018 予測: データとクラウドがすべての企業を変革する

テクノロジー業界に対する予測はシンプルです。デジタル変革は 2018 年も引き続き企業にとって最優先...

忘れられた URL の最適化のヒント

多くのウェブマスターはウェブサイトの URL の最適化を見落としがちですが、ウェブサイトの最適化には...

クラウドにデータを保存する前に知っておくべき9つのこと

今、誰もがクラウドコンピューティングについて話しています。現状では、企業はクラウド コンピューティン...

民間医療業界におけるWeChatマーケティングのメリットとデメリット

WeChat マーケティングに関しては、誰もがよく知っていると思います。ただし、WeChat 上のユ...

テクノロジーが貧困緩和に貢献:アリババクラウドテクノロジー貧困緩和連盟が設立

9月21日、2018年杭州雲奇大会において、「アリババクラウドテクノロジー貧困緩和連盟」が正式に設立...

山西証券とテンセントはデジタル変革のプロセスを加速するために戦略的協力を締結した

2021年6月15日、山西証券株式会社(以下、「山西証券」という)と深センテンセントコンピュータシス...

ウェブマスターが優れたウェブサイト説明タグを書くための3つの方法の簡単な分析

現在、ウェブサイトの最適化に関して、ほとんどのウェブマスターは、ウェブサイトの説明タグは最適化にほと...

Amazon Web Services、Amazon Cloud WANの一般提供を発表

2022 年 8 月 2 日、Amazon Web Services は、完全に管理されたワイドエリ...

新浪はポルノ関連の犯罪で重い罰金を科される可能性があり、NBAのライブ放送事業の将来は不透明

劉佳新浪はわいせつな情報やポルノ情報を流布したとして、81万5000ドルの罰金を科せられ、一部のライ...

Baiduスナップショットなしの検出結果の分析例

今朝、フレンドリーリンクをチェックしたところ、当社のウェブサイトのセカンドレベルドメイン名の1つであ...

なぜますます多くの企業がローカル データ ストレージではなくクラウド データ ストレージを選択しているのでしょうか?

この記事では、企業がビッグ データを収集および分析する際に直面する可能性のある主な課題と、エンタープ...

湖南岳陽あなたのクラスは、Facebookグループマーケティングで良い仕事をするための最適な時期を目指すべきです

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますFaceb...

新浪の数億ドルの投資はまだ利益を生んでおらず、微博の商業化は苦戦している

中国新聞社ITチャンネルによる地図中国新聞社、7月17日(ITチャンネル左盛丹) 課金するべきか、し...