Edgeでのイベント処理をKubernetes原生技術で規模化実現する方法

はじめに

現代のデジタルインフラにおいて、Edgeコンピューティングはリアルタイムデータ処理や低遅延応答の要件に対応するための重要な技術として注目されています。特に、IoTデバイスやセンサーからのイベントデータを即座に処理し、クラウドへの負荷を軽減する必要性が高まっています。本記事では、Intuitが開発したNumaflowというツールが、Kubernetesの原生技術を活用してEdge環境でのイベント処理を規模化実現する方法について詳しく解説します。

技術の概要

Event Processing on the Edgeの課題

Edge環境でのイベント処理には以下のような課題があります:

  • 多様なイベントソース:センサー、IoTデバイス、クラウドとの連攜など、多様なデータソースからのイベントを統合する必要があります。
  • リアルタイム処理の制約:クラウドではSpark StreamsやFlinkが一般的ですが、EdgeデバイスはCPUやメモリ資源が限られています。
  • 言語制限:Javaベースのアプリケーションが一般的ですが、EdgeデバイスではJVMをサポートしていない場合があります。

Numaflowの設計哲學

NumaflowはKubernetesの原生技術を活用し、以下の特徴を持つ設計となっています:

  • Kubernetes原生:クラウドネイティブな環境で動作し、インフラの管理を必要としません。
  • 言語無関係:Java、Python、Golang、Rustなど、複數の言語で処理ロジックを実裝可能です。
  • 自動スケーリング:トラフィックに応じて自動的にリソースを拡縮し、コストを最適化します。

核心特性とアーキテクチャ

自動スケーリングと解耦処理

Numaflowは、以下の特徴を備えています:

  • 自動スケーリング:トラフィックがゼロのときにはリソースをゼロにまで縮小し、コストを削減します。
  • 解耦処理:イベントソースと処理ロジック、出力先を分離し、プラグイン形式で拡張可能です。
  • 軽量なデプロイ:EKS、GKE、K3S、KindなどのKubernetesクラスターで動作可能。

MonovexとPipelineのアーキテクチャ

Numaflowは、以下のようなアーキテクチャを採用しています:

  • Monovex:シンプルなイベント処理を実現するためのCRD(Custom Resource Definition)を用いた設計。
    • ソースコンテナ:Kafkaやカスタムソースからのデータ読み込み。
    • テンセラーコンテナ:データの解析ロジック。
    • シンクコンテナ:他のストレージやシステムへのデータ転送。
    • Unix Domain Socketを用いたコンテナ間通信。
  • Pipeline:複雑なストリーム処理を実現するためのVertexベースの設計。
    • データのマッピング、集約、固定窓、スライド窓、セッション窓などの処理。
    • カスタムソース、シンク、関數の拡張機能。

実際の応用と性能

デモ環境と性能指標

Numaflowは以下の環境で動作します:

  • K3Sクラスター:4つのVertexを含むストリーム処理パイプライン。
    • ソース:HTTPエンドポイントを模擬。
    • Map UDF:偶數/奇數の判定。
    • 集約Vertex:5分間ごとの合計計算。
    • シンク:Kafkaへの結果出力。
  • 性能
    • 簡単なイベント処理:11ノードで4K/秒のトラフィック。
    • 複雑なパイプライン:機械學習の推論・トレーニング、多言語処理をサポート。

社區の実例

  • BCube:米國國防省のサプライヤーが、ネットワーク接続がないEdgeデバイスで信號処理を実施。
  • Boomer Groups:歐州企業が、デバイス溫度監視と健康狀態分析を実施。
  • NT(日本電信):AR機械學習とリンク加速の実裝。

結論

Numaflowは、Kubernetesの原生技術を活用したEdge環境でのイベント処理を規模化実現するための強力なツールです。以下の特徴を備えています:

  • Kubernetes原生:軽量で拡張性が高い。
  • 言語無関係:多言語SDKを提供。
  • 低リソース消費:EdgeやOn-Prem環境での適用が可能。

応用場面

  • 零售の在庫管理
  • 預測保守(デバイス溫度・振動監視)
  • 智能交通・監視(交通信號制御、運動検出)

Kubernetesの実裝環境に合わせて、Numaflowを活用することで、Edgeでのリアルタイム処理を効率的に実現できます。