Go ahead!

Memoization for Everything

そろそろFluentd v11についてひとこと言っておくか

| Comments

リリースは永遠にされません!

日本では色々なところでv11の噂がまことしやかに囁かれていますが, 俺がメインメンテナである限りv11がリリースされることはないので,諦めてv0.10.xを使ってください!

以下まじめな話になります.

v11が生まれた背景と現状

v11が生まれたのは1年以上前です.背景には,v10と呼ばれる今のバージョンがプロトタイプを兼ねたリリースであり, 「利用者のフィードバックを取り込んで,ダメな所をガッツリ書き換えて互換性を壊してメジャーバージョンアップや!」という流れがありました.

しかし,v10は十分に柔軟でかつパフォーマンスも発揮しており,コミッタ陣はそれほどモチベーションがあったわけではありません. また,プラグインによって解決出来た問題も多く,v11が生まれた時ほどユーザから「v11が欲しい!」という要望は聞かれなくなりました.

当たり前ですが,ユーザからの声がなければ「あれ,じゃあこの機能あんまり必要ないんじゃね?」ということになって削られるのはよくあることで, v11もそんな感じで開発リソースはあまり割かれなくなって行きました.
もともと空いた時間に@frsyuki,@tagomoris,@sonotsの人達がたまにコミットしていたくらいなので,直近では機能追加のコミットはほぼありません.

Fluentdのユーザ拡大

v11で互換性を壊しても大丈夫だろう,とコミッタ陣が思っていたものの一つに,当時Fluentdのプラグインの大半をコミッタの関係者が書いていた, というのがあります.
そのため,互換性を壊しても必要そうなプラグインの書き換えはすぐに終わるし, 「えいや!」と同時にバージョン上げれば被害は少ないだろうという感じです.

しかし,v10は思っていたよりも早くユーザが増え,今ではさきがけとなったWeb/アドテク業界のみならず,大小問わず様々な企業, IoTな分野など,世界的にも使われるようになってきました.
また,それにともないプラグイン数も200を越え,当初の目論見が難しくなっているのが現状です.

開発方針の変更とv1案

俺がFluentdのメインメンテナとなったのも関わってるんですが,「v11のリリースをどうするか?」という問題もハンドリングするようになりました.
個人的には「v11の機能群は有用だけど,互換性を壊してリリースするほどのものではないなぁ」というのがv11を見た結論であり, その辺やりとりしたのが以下のtogetter.

Fluentd v11 なんてなかったんだ

上のまとめにあるように,色々と話した結果,v11が持っているいくつかの機能をv10にマージし, それらが終わったらv1としてリリースしようというのが,現在の開発の方向性です.
段階的な変化になりますが,基本的には互換性が保たれるようにAPIを変えていくので, 既存ユーザはそのまま使えますし,バージョンアップにともなって徐々に有用な機能が使えるようになります.

以下のissueで必要そうな機能リストと,進捗を管理してます.

Plan for v1 release

v1というバージョンに関しては,今のFluentdのgemのバージョンがv0.10.xで,v0.11.xのことをv11と呼んでいて非常に紛らわしく, 新しく入ってくるユーザとかを考えるとそろそろまじめにバージョニングした方が良いだろうという考えです.
v1だと安定版のイメージが強いですし,実際の所v0.10.xはv1でもおかしくない機能セットはすでに持っています.

まとめ

ということで,色々と今までの流れを書きましたが,皆さんFluentdを今後とも宜しくお願いします :)

Comments