RustとWASMで開発されKubernetesで実装されたデータストリームシステムFluvioを紹介

RustとWASMで開発されたリアルタイムデータストリームシステムのFluvioを紹介。

松下 康之 - Yasuyuki Matsushita

2022年12月23日 6:00

Cloud Native Computing Foundation(CNCF)が公開しているYouTubeチャネルから、Kafkaに替わるストリーミングプロセッシングを行うオープンソースソフトウェアFluvioを解説する動画を紹介する。CNCFはクラウドネイティブなシステムを普及するためのマーケティング活動の一環としてクラウドネイティブなソフトウェアを解説する動画を公開しているが、これもそのひとつだ。Fluvioを開発しているのはInfinyOnという企業で、元NGINXのエンジニアが創業したベンチャーだ。Fluvio自体はオープンソースだが、CNCFのサンドボックスプロジェクトという訳でもない。CNCFにはTremorやStrimziというストリーミングのためのソフトウェアがすでにサンドボックスとして採用されているが、そういった枠には捕らわれずに紹介をするという発想だろう。

動画:Introduction to Fluvio, The Programmable Platform for Data in Motion

「Programmable Platform for Data in Motion」というタイトルが示すように、ストリーミングデータの加工などをRustで記述できるというのが最大の利点だろう。Fluvio自体もRustを用いて開発されており、レガシーなKafkaとは完全に異なる発想で作られている。TremorもRustで書かれているが、KafkaをKubernetesの上で稼働させるStrimziはJava、Kafka自体もJavaとScalaで書かれている。

オープンソースソフトウェアであるFluvioの解説

オープンソースソフトウェアであるFluvioの解説

このスライドではオープンソースソフトウェアとして紹介されているが、InfinyOnはクラウドベースのサービスも有償で提供しており、いわゆるエンタープライズ版はクラウドベースのSaaSで有償、コミュニティーが開発するものはオープンソースという形式を採る。OSS版をコアに、エンタープライズ用の拡張を有償で提供するオープンコアとは異なり、コードは同じだが、素早く利用が開始でき、SLAも保証できるサービスを売ることで、企業としての持続を目指しているということになる。

InfinyOnの紹介。2019年創業でNGINXの元社員が作った会社だ

InfinyOnの紹介。2019年創業でNGINXの元社員が作った会社だ

Fluvioの概要

Fluvioの概要

Fluvioの概要として解説されている特徴は、モダン、イミュータブル、プログラマブル、リアルタイムという辺りだろう。モダンやイミュータブルというのはKubernetesやRustを使っているという部分だろう。プログラマブルはRustで処理を記述できるという部分になる。またリアルタイムはJavaで書かれたKafkaに比べて高速であるという部分に相当すると思われる。

Javaに比べて高速であることを示す比較

Javaに比べて高速であることを示す比較

このスライドではJavaとRustの性能比較を紹介している。フィボナッチ数を計算するプログラムでの比較だと思われるが、レイテンシーやメモリー使用量、CPUの占有率、プログラムのサイズなどで比較すると、圧倒的にRustのほうが優れていることを示している。

Fluvioのシンプルな構造を紹介

Fluvioのシンプルな構造を紹介

データストリームの処理にはETL(Extract、Transform、Load)の処理が必須となるが、その前後のデータを取り込むモジュール、処理の中身、CLIなどをSmartModuleというRustで書かれたプログラムが担当することを解説している。

Kafkaのアーキテクチャー。ZookeeperやFlinkなどが必須となる

Kafkaのアーキテクチャー。ZookeeperやFlinkなどが必須となる

このスライドではFluvioが代替する対象となるKafkaのシステム図を示して、いかに複雑なシステムになっているかを解説している。分散処理のためのZookeeperなどがインフラストラクチャーとして必要となっている。

Fluvioのシンプルなアーキテクチャー

Fluvioのシンプルなアーキテクチャー

それに対してFluvioでは、データを取り込むプロデューサーもFluvioクラスターもデータを最終的に利用するコンシューマーもRustで書かれたWebAssemblyのモジュールが存在するだけというシンプルさだ。

Kafkaと比べて大きなコスト削減が可能になったFluvioの事例

Kafkaと比べて大きなコスト削減が可能になったFluvioの事例

またKafkaを使っていた企業がFluvioに乗り換えた事例を紹介し、1ヶ月あたり41,000ドルに及ぶコスト削減が可能になったことを説明した。

InfinyOnとFluvioの歴史を振り返る

InfinyOnとFluvioの歴史を振り返る

このスライドでは2019年に創業して以来、オープンソースソフトウェアとしてのFluvioとそのクラウドサービスであるInfinyOn Cloudがどのように進化してきたのかを解説している。ソフトウェアが機能追加を続けると同時にクラウドサービスもアルファからベータ、そして公式版に同期していることがわかる。

この後はデモとして氏名、メールアドレス、電話番号、ソーシャルセキュリティーナンバーというJSON形式のデータを読み込んで、電話番号をマスク、ソーシャルセキュリティーナンバーは削除するというシンプルな変換処理を、実際にInfinyOn Cloudを使って行った。

InfinyOn Cloud上にてRustで書かれた処理をコンパイルしているところ

InfinyOn Cloud上にてRustで書かれた処理をコンパイルしているところ

またVisual Studio Codeのターミナルから処理を行うところを実演してみせるなど、クラウドサービスが提供する利点を十分に活かしたデモを行った。

Visual Studio Codeからデモを実施

Visual Studio Codeからデモを実施

ここまでデモと解説は終ったが、いわゆるオンプレミス向けのソフトウェアにありがちなインストールに要する時間が省かれて、すぐに試用できる部分を見せたことは評価をしたいエンジニアには有効だろう。ちなみにInfinyOn CloudはAWSの上で実装されているのでAWSとの親和性も高そうである。

CNCFのランドスケープから引用

CNCFのランドスケープから引用

この図はCNCFが公開しているクラウドネイティブランドスケープからのものだが、Streamingというカテゴリに存在するオープンソースソフトウェアで、公開から3年でGitHubのスターが1356というのは同じRustで書かれているTremorも3年で679ということを考えると健闘しているといえるだろう。

Kafkaの状況。CNCFのランドスケープから引用

Kafkaの状況。CNCFのランドスケープから引用

Kafkaが公開から11年で23,000のGitHubスター、コントリビューターが500名以上、それに比べるとFluvioはまだ40名ということでInfinyOnの社員が大部分を担当しているということだろう。

OpenSSFのBest Practiceの達成率はまだ19%

OpenSSFのBest Practiceの達成率はまだ19%

「オープンソースソフトウェアがセキュアな環境や方法論で開発されているのか?」を判断する指標となるOpenSSF Best Practice Badgeだが、Fluvioの達成率はまだ19%である。Tremorがすでにバッジを獲得していることと比べれば、直接的な機能の充実という部分とは違う側面になるが、セキュアに開発が行われているのかを判断したい企業にとってみれば重要な指標になる。

RustとWebAssemblyというモダンな開発言語、環境で省資源かつ高速なデータ処理をKubernetesネイティブなシステムとして実装したFluvio、今後の発展に注目していきたい。

FluvioのGitHub:https://github.com/infinyon/fluvio

Fluvioのドキュメント公式サイト:https://www.fluvio.io/docs/architecture/overview/

InfinyOnの公式サイト:https://www.infinyon.com/

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30