[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 の一般的なアーキテクチャは次のようになります。 エッジコンピューティングの課題 企業が工場、小売店、コーヒーショップなどのシナリオにさまざまな革新的なリアルタイム アプリケーションを導入し、エッジ サイトにデータを配信しようとすると、次のような課題に直面することがよくあります。
エッジコンピューティングのための 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 デプロイメント ソリューションには、次のような利点があります。
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 フル スタックがエッジのニーズを真に満たせるように、最初に全体的なアーキテクチャとデータ通信を計画する必要があることがわかります。 ハイブリッドアーキテクチャ モノのインターネットの実際のニーズは多岐にわたります。 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 はどれですか? 2019 年に最も速い海外 VPS は何ですか?多くの...
これで、チームをクラウドに移行する準備が整いました。顧客とチームはクラウド内に存在します。携帯電話、...
ベトナムのVPS業者Tothostは、ベトナムのハノイにCMCとVNPTのVPSを保有しています。K...
企業のビジネスが拡大するにつれて、データセンターはますます大きなプレッシャーに直面しています。より多...
会社が Kubernetes を導入する場合、メインラインから外れた部分にエネルギーを費やす可能性が...
時は経つのは早いもので、気がつけば3年が経っていました。 ProcessOn は、小さな会社としてス...
1. フォグ コンピューティングとエッジ コンピューティングの違いは何ですか?フォグコンピューティン...
有名なグリム童話では、ヘンゼルとグレーテルは継母が自分たちを深い森で迷わせようとしていることを知って...
UCloud は、クラウド ホストのフルディスク暗号化セキュリティ機能を独占的にリリースします。ユー...
最近では、多くの企業が SEM に注目しています。サイト上で SEO 最適化を適切に行うことに加え、...