ククログ

株式会社クリアコード > ククログ > OSS開発支援の一例: Fluentdとその関連ソフトウェア

OSS開発支援の一例: Fluentdとその関連ソフトウェア

クリアコードではOSS開発支援サービスの一環でTreasureDataさんが中心になって開発し公開しているFluentdとそのプラグインなど1の開発を支援しています。 かれこれ一年ほどやってきたので、どのようなことをやってきたのかふりかえります。

TreasureDataさんの目的はFluentdの普及促進です。Fluentdが普及すると、TreasureDataさんのサービスを利用する人が増えるためです。

クリアコードはTreasureDataさんの目的を達成するために以下のことをやっています。

  • TreasureData さんが手の回っていないところをサポートする

    • IssueやPRに対応する

    • メンテナのいないプロダクトでよく使われているものはメンテナンスを引き取る

    • 新機能の開発

    • バグの修正

    • その他、Fluentdの普及促進につながること

  • Fluentd やその関連ソフトウェアに関する技術情報を発信する

    • ククログやQiita等に記事を書く

直接依頼されたことだけでなく、Fluentdの普及促進につながることを積極的にやっています。

なお、TreasureDataさんとは基本的にはIssue/PullRequestでやりとりしています。作業の優先順位やIssue/PullRequestで相談しづらいことを相談するときはSlackを使用しています。

IssueやPRに対応する

IssueやPRにコメントを書くことによって、コミュニティが活発になります。コミュニティが活発になると次のような理由で新規ユーザーを惹き付ける要因の一つになります。よってFluentdの普及促進につながります。

  • 今後の発展を期待できる

  • 問題が見つかりやすくなり安定化につながる

  • ユーザー間での情報共有が活発になり早く問題解決できる

コメントを書いたIssueやPRのうち特に問題の解決につながったものをリストアップしました。

メンテナのいないプロダクトでよく使われているものはメンテナンスを引き取る

これらは依頼されて引き取ったものもありますが、Fluentdが内部で利用しているライブラリもあります。 こういったプロジェクトを引き取りメンテナンスを継続することによって、既存ユーザーは安心して使い続けることができますし、新規ユーザーも安心して使い始められます。安心して使えていると既存ユーザーは他の人から意見を求められたときに「安心して使える」という情報を伝えてくれます。このようにFluentdの普及促進につながります。

新機能の開発

既存のFluentdのままでもかなり便利ですが、以下の点をより強化することによりさらにFluentdの普及促進につながります。

  • 機能追加

    • Fluentdを活用できるケースが増えて普及促進につながります。
  • 既存機能の改良

    • 運用中のFluentdのメンテナンスが楽になります。運用が楽になると既存ユーザーはよりFluentdを活用でき、まわりにその情報を提供してくれる可能性が増えます。また、新しくFluentdを活用できるケースが増えて普及促進につながります。
  • テスト周りの改良

    • プラグインを開発しやすくなり、既存プラグインのメンテナンス・新規プラグインの開発がはかどります。プラグインが増えるとFluentdを活用できるケースが増えて普及促進につながります。

依頼されたものだけでなく、特にFluentdの普及推進につながるものをリストアップしました。

バグの修正

バグを修正することにより、それが原因で使えなかったケースでもFluentdを活用できるようになり、Fluentdの普及促進につながります。また、既存ユーザーは運用で回避せずに済むため、よりFluentdを楽に運用できるようになります。このような既存ユーザーが情報共有といった形でコミュニティで活躍してくれるとコミュニティがさらに活発になりFluendの普及促進につながります。

依頼されたものではなく、自分たちで見つけたバグを修正したものをリストアップします。

Fluentd関連の技術情報発信

QiitaやククログでFluentd関連の技術情報を発信しています。

その他、Fluentdの普及促進につながること

他にも以下のことを実施しました。

  • Fluentdのプラグインを新機能に対応させる2

    • v0.12.11で追加された secret パラメータ対応

    • v0.12.16/v0.12.17で追加された desc 対応

    • v0.12.0で追加されたfilterプラグインに対応するための修正

  • Fluentd v0.14のプラグインAPIへの対応3

  • ライセンス表記の修正

  • TravisCIの設定の追加・修正・更新

  • Rubyのバージョンアップに伴う修正

  • ユニットテストの追加

  • 警告の除去

  • flume-ng-fluentd-sinkの開発

  • fluent-bitのHomebrewのFormulaの作成のプルリクエスト

  • RustのFluent Loggerのfruentlyの開発

これらは少し遠回しなものもありますが、次の理由でFluentdの普及促進につながると考えて実施しました。

  • Fluentdの新しいユーザーが簡単に新しいFluentdやFluentdの関連ソフトウェアを使えるようになるため

  • ライセンス表記を正しいものに修正すると、ユーザーがそのソフトウェアを使ってもよいものなのか簡単に正しく判断することができるようになるため

  • メンテナンス性を向上させて開発を続けやすくするため

  • Flume NGからFluentdへの移行や接続を容易にするため

  • Fluentdを動かすには厳しい環境に対してもFluentdのエコシステムに乗っかれるかどうかの検証環境の導入を容易にするため

  • 新しい言語のユーザーにFluentdへの関心を持ってもらえるようにするため

まとめ

このようにクリアコードではOSSの開発支援を実施しているので、OSSの開発をしているけれど手が足りなくて思うように進められないといったことがあれば相談してみてください。 相談はフォームからメッセージを送ってください。

  1. fluent-plugin-xxxやfluent-logger-xxxが多い

  2. 3rdパーティ製も含む

  3. 絶賛対応中