リスクなしで
ソフトウェアを
より速く革新
Innovate Your Software Faster without Risk
2023年に利用可能な最高のオープンソースのFeature Flagsツールとは?
この記事は LifeCycle によって書かれました。ここで英語で書かれたオリジナルの記事を確認できます
はじめに
Feature Flags は、現代のソフトウェア開発における重要な側面となっています。それらは新機能の展開を簡単かつ柔軟に管理することを可能にし、オープンソースのFeature Flagsツールの2023年の情勢は多様であり、それぞれが独自の機能と利点を提供しています。この包括的なガイドでは、専用のFeature Flagsツールと主にデータ解析に焦点を当てたツールとの違いを明確にし、利用可能な最高のオープンソースのFeature Flagsツールを探求します。
この記事で言及されているツール:
FeatBit, Flagsmith, Unleash, GoFeatureFlag, FlagR, Flipper, Flipt, FeatureHub, PostHog, Growthbook
トップオープンソースのFeature Flagsツール

FeatBit
FeatBitはオープンソースのFeature Flags管理サービスです。これによりソフトウェアチームは、自社のアプリケーション内で新機能を簡単に制御および管理できます。FeatBitを使用することで、開発者はコードを安全に展開し、新しい機能をテストし、Web、モバイル、サーバーサイドのアプリケーションを含むさまざまな環境で機能の展開を管理できます。FeatBitは組織が自社のFeature Flagsソリューションを自社で管理することを好む企業に向けて設計されており、オンプレミスまたはプライベートクラウド環境での展開オプションを提供しています。

FeatBitの主な機能:
- セルフホステッド要件に最適: FeatBitはHelm ChartおよびTerraformをサポートしており、観測可能性のためのOpenTelemetryサポートを提供しています。高い可用性とマルチデータセンターソリューションを提供し、複雑なホスティングニーズに対応しています。
- パフォーマンスとスケーラビリティ: スピードとスケーラビリティを考慮して設計され、プラットフォームは100万以上の同時オンラインユーザーをシームレスにサポートし、大規模な操作に対応する能力を示しています。
- 豊富な統合機能: FeatBitには、さまざまなアプリケーションパフォーマンス管理(APM)ツール、チームコラボレーションツール、REST APIを介した他のサードパーティサービスとシームレスに接続する包括的なwebhook統合機能があります。さらに、Feature Flagsの評価とメトリクスイベントデータを、サードパーティのデータウェアハウスおよび解析ツールにエクスポートするためのデータエクスポート機能が提供されています。
- 柔軟でわかりやすい料金モデル: FeatBitは、シートベース、環境ベース、API呼び出しベースの料金が不要な明確な料金モデルを採用しています。このアプローチにより、ビジネスの透明性と予測可能性が向上し、予算の計画が単純化されます。
技術スタック: .NET (C#)
ライセンス: MIT
FeatBitのGitHub: https://github.com/featbit/featbit
Flagsmith
Flagsmithは、選択した環境に展開する柔軟性を提供するオープンソースのFeature Flagsとリモート構成サービスです。ホストされたAPIを使用したり、プライベートクラウドに展開したり、オンプレミスで実行したりすることができます。Flagsmithは、コードのセクションをフラグで包むことにより、開発者がこれらの機能を簡単に管理し、異なる環境、ユーザーセグメント、または他の条件に基づいてアプリケーションの動作をカスタマイズするプロセスを簡素化します。

Flagsmithの主な機能:
- クロスプラットフォーム構成: Flagsmithのフラグは、アプリストアの承認を待たずにリアルタイムに複数のプラットフォームでリモートで構成できるため、リモート構成を可能にします。
- Flagsmithにはさまざまなプラットフォームとの強力な統合機能があり、これにより便益と柔軟性が向上します。これには、TerraformのようなCI/CDプラットフォーム、Amplitude、Heap Analytics、Mixpanel、Segmentといったアナリティクスプラットフォームとの統合、およびカスタムアナリティクスプラットフォームやデータウェアハウスとの統合が含まれます。
- 幅広いSDK互換性:
- クライアントサイド:JavaScript、React Native、React、Android、iOS、Next.jsをサポート
- サーバーサイド:Node.js、Python、PHP、Ruby、Go、.NET、Ruby、Rust、Elixirと互換性があります。
- 柔軟な価格設定: Flagsmithはクラウドサービスで月間5万回まで無料です。これを超える場合、より大規模なニーズに対応するためのセルフホステッドオプションとプライベートクラウドオプションが利用可能です。
技術スタック: Python
ライセンス: BSD 3-clause
FlagsmithのGitHub: https://github.com/flagsmith/flagsmith
Unleash
Unleashは、堅実なコミュニティと明確な開発ロードマップに裏付けられた、優れたオープンソースのFeature Flagsサービスとして際立っています。これは、主にTypeScriptで開発された、様々なアプリケーションやサービスでのフィーチャートグルやフラグの詳細なビューを提供します。このプラットフォームは、世界中のソフトウェアチームが新機能の展開を効果的にコントロールできるようにしており、GitHub上で最も人気のあるオープンソースのFeature Flagsソリューションであり、10以上の公式クライアントおよびサーバーSDK、5つ以上のコミュニティSDKをサポートしています。

Unleashの主な機能:
- エンタープライズレベルのセキュリティとスケーラビリティ: エンタープライズのセキュリティとプライバシーを考慮して設計されたUnleashは、プライベートデータセンターで実行したり、シングルテナントのSaaS提供としてホストしたりすることができます。この柔軟性は厳格なセキュリティとプライバシー要件を持つ組織に対応しています。
- 幅広いSDKサポート: Unleashは、主要なフレームワークとプログラミング言語向けの公式SDKを提供します。さらに、コミュニティは他の一般的でないフレームワーク向けのSDKも提供し、その柔軟性が高まっています。対応するSDKは次のとおりです:
- クライアントサイド:JavaScript、Android、Flutter、iOS、React、Svelte、Vueを含む。
- サーバーサイド:Go、Java、Node.js、PHP、Python、Ruby、Rust、.NETを含む。
- コミュニティがメンテナンスする:Angular、Clojure、C++、ColdBox、Dart、Elixir、Haskell、Laravel、NestJS、React Native、Solidを含む。
- コスト効果の高いソリューション: Unleashは、2つの環境までのセルフホスティング版を無料で提供しています。セグメンテーションやカスタムアクティベーション戦略などの高度な機能については、有料のマネージド版(SaaS)も利用可能です。
技術スタック: TypeScript
ライセンス: Apache
UnleashのGitHub: https://github.com/unleash/unleash
GoFeatureFlag
GoFeatureFlagは、ベンダーの関与なしにコード内でFeature Flagsを簡単に使用できる、統合された包括的なアプローチを提供するオープンソースのソリューションです。このツールは当初、Goプログラミング言語向けに作成されましたが、これ以降、OpenFeatureプロジェクトを通じて複数の言語をサポートするように拡張されました。この拡張は、さまざまな言語を収容するためにホストできるシンプルなAPIサーバーであるリレープロキシによって実珅されています。

GoFeatureFlagの主な特徴:
- 軽量でオープンソース:GoFeatureFlagはそのシンプルさと軽量さで知られており、特徴フラグを簡単に実装できるソリューションとなっています。
- 複数言語サポート:元々Go向けに設計されていましたが、OpenFeatureプロジェクトの標準化の取り組みにより、GoFeatureFlagは複数の言語をサポートするようになりました。これにより、多様な開発環境に対応可能なツールとなっています。
- 柔軟な構成ストレージ:このツールは、HTTP、S3、Kubernetesなどさまざまな場所に構成フラグを保存することができ、構成管理の柔軟性を提供しています
技術スタック: Go
ライセンス: MIT
GoFeatureFlagのGitHub: https://github.com/thomaspoignant/go-feature-flag
FlagR
FlagRは、特徴フラグ設定、A/Bテスト、ダイナミック構成に特化した動的マイクロサービスです。ユーザーやエンティティに適した体験を提供することに焦点を当てつつ、これらの変更の影響を監視することを目的としたオープンソースのGoサービスです。FlagRは、特徴フラグの管理と実験を行うためのツールセットを提供し、明確なSwagger REST APIを備えており、特徴フラグの管理と評価を容易に行うことができます。

FlagRの主な特徴:
- FlagRは特徴フラグ設定やA/Bテストのための強力な機能を提供しています。これにより、チームは新機能の制御された展開、異なるバリエーションのテスト、および製品の拡張に関するデータに基づく意思決定を行うことができます。
- ダイナミックな構成:このサービスでは、再展開する必要なしに、動的な構成を行うことができます。この柔軟性は、ユーザーフィードバックや変化する市場状況に迅速に対応する上で重要です。
技術スタック: Go
ライセンス: MIT
FlagRのGitHub: https://github.com/openflagr/flagr
Flipper
Flipperは、RubyとRails向けの特徴フラグを提供するために特別に設計されたオープンソースのライブラリです。そのシンプルさ、美しい外観、高いパフォーマンスで知られています。Flipper Cloudは、Flipperのコアライブラリを基盤とした包括的なプラットフォームを提供します。このプラットフォームは、様々なプロジェクトや環境で特徴フラグの管理を簡素化するためのものであり、組織が特徴フラグの制御、アクセス、監査を一元化するための理想的なツールとなっています。

Flipperの主な特徴:
Flipper Cloudにより、すべてのプロジェクトの中央管理が可能となります。この中央管理により、異なるアプリケーションやマイクロサービスで特徴フラグを異なる方法で設定する必要がなくなります。組織全体の制御、アクセス、および監査プロセスが合理化され、一貫性と効率性が確保されます。
技術スタック: Ruby
ライセンス: MIT
FlipperのGitHub: https://github.com/flippercloud/flipper
Flipt
Fliptは、企業向けの特徴管理ソリューションであり、GRPCを活用し、GitOpsが可能となっています。このツールは、リリースと展開を分離することで、DevOpsのベストプラクティスに準拠するよう設計されており、高パフォーマンスなエンジニアリング組織を対象として構築されています。Fliptは、既存のインフラストラクチャにシームレスに統合されるよう設計されており、機密情報が第三者に送信されることがなく、インターネット通信に伴う遅延が削減されます。

Fliptの主な特徴:
- Fliptは、DevOpsとGitOpsのワークフローに統合することができるようにカスタマイズされており、継続的な構成と展開が可能です。この統合により、開発中に新しい機能を内部でテストし、本番リリースの前に新機能をテストするトランクベースの開発ワークフローや、システムの安全性を確保するための緊急キルスイッチの機能などが含まれています。
- Fliptは、既存のサービスと共存することで遅延を最小限に抑え、アプリケーションのパフォーマンスを高速化するよう設計されています。デザインはシンプルであり、デフォルトでは外部依存関係がなく、単一のバイナリであるため、インストールとメンテナンスが簡素化されています。
技術スタック: Go
ライセンス: GPL-3.0
FliptのGitHub: https://github.com/flipt-io/flipt
FeatureHub
FeatureHubは、特徴フラグ(フィーチャートグルとしても知られる)からA/B実験、リモートまたは中央集権型の構成に至るまで、ソフトウェアチームが機能を管理するためのCloud Nativeプラットフォームです。リアルユーザーを対象とした本番環境でのフィードバックループ、特徴テスト、実験を可能とする重要なツールとなっています。FeatureHubは、自己ホスト型プラットフォームとクラウドホスト型のSaaSソリューションの両方を提供し、さまざまな組織のコンテキストで使用できるように適応しており、多くのアプリケーションやチームを持つ大企業から小規模のスタートアップまで幅広く対応しています。

FeatureHubの主な特徴:
FeatureHubは、独自のインフラストラクチャ上で実行することができる自己ホスト型プラットフォームを提供し、特定の組織のニーズに合わせた制御とカスタマイズを可能としています。さらに、30日間の無料トライアルを含むシンプルなペイアズユーゴープライシングが提供されるクラウドホスト型のSaaSソリューションも提供しており、幅広い企業規模やタイプにアクセス可能となっています。
技術スタック: Dart
ライセンス: Apache 2.0
FeatureHubのGitHub: https://github.com/featurehub-io/featurehub
データ分析を主眼に置いたツール
以下のツールは、特徴フラグの機能を提供していますが、その主眼はデータ分析とA/Bテストにあります。これらのツールは、特徴フラグが広範なデータ分析や実験戦略の一環である場合に考慮すべきです。
PostHog
PostHogは、Amplitudeなどの分析ツールの人気のある代替ツールです。製品分析、セッション再生、A/Bテスト、ユーザーアンケートに加えて特徴フラグも提供するオールインワンプラットフォームです。PostHogの特徴フラグには条件付き展開、多変量フラグ、JSONペイロード、自動使用レポート、ローカル評価などが含まれており、主要指標への影響をテストするために製品変更をテストするA/Bテスト機能を提供しています。PostHogは、ユーザーにベータ機能へのセルフオンボードを可能にする早期アクセスの特徴管理機能も提供しています。

技術スタック: JavaScript
ライセンス: MIT
PostHogのGitHub: https://github.com/posthog/posthog
Growthbook
GrowthBookは、特徴フラグ設定とA/Bテストに特化したオープンソースのプラットフォームです。データチーム、エンジニア、プロダクトマネージャのニーズに対応し、実験結果の分析とコード展開を容易にする多目的でカスタマイズ可能なツールを提供しています。このプラットフォームは、多くの内部ツール開発が必要ないように、チームに強力な内部ツールを提供することを目的として開発されています。既存のデータやメトリクスとシームレスに連携するために設計され、データの透明性と高いパフォーマンスを確保しています。

技術スタック: JavaScript
ライセンス: MIT
GrowthBookのGitHub: https://github.com/growthbook/growthbook
オープンソースの特徴フラグ管理ツールを選択する上での主要な考え方
オープンソースの特徴フラグツールを選択する際には、以下の要因を考慮することが重要です:
アクティブなメンテナンス
- 重要性: 定期的なアップデートとアクティブなメンテナンスは、ツールの信頼性と開発者の改善に対するコミットメントを示します。
- チェックリスト: プロジェクトのリポジトリでの最近のコミット、解決済みの問題、および進行中の議論を見る。
技術スタックの整合性
- 重要性: ツールは、現在の技術スタックとシームレスに統合する必要があります。互換性の問題を避けるためです。
- チェックリスト: ツールが利用しているプログラミング言語やフレームワークをサポートしていることを確認し、利用可能なSDKやAPIをチェックする。
コミュニティへの参加
- 重要性: 活気のあるコミュニティは、ツールの堅牢性に貢献し、サポートや知識共有のプラットフォームを提供します。
- チェックリスト: アクティブなフォーラム、ユーザーグループ、またはチャットチャンネルを探し、コミュニティが質問やフィードバックに対応する状況を把握する。
質の高いドキュメンテーション
- 重要性: 充実したドキュメントは、ツールの簡単なインストール、トラブルシューティング、効果的な利用にとって重要です。
- チェックリスト: 詳細なガイド、APIドキュメント、FAQ、および実際の例や事例研究を探す。
商用サポート
- 重要性: 専門的なサポートへのアクセスは、複雑な問題のトラブルシューティングや特定のニーズに対するツールのカスタマイズにとって重要となります。
- チェックリスト:オープンソースツールに有償の専任サポートが提供されているか、またはサポートサービスを提供している第三者ベンダーがいるか確認してください。
性能効率
- 重要度:負荷下で優れたパフォーマンスを発揮するツールは、特に高トラフィックのアプリケーションにとって極めて重要です。
- チェックリスト:ツールの効率に関するパフォーマンスベンチマーク、ケーススタディ、およびユーザーテスティモニアルを探してください。
堅牢なセキュリティ
- 重要度:セキュリティは妥協できません。feature flagsはアプリケーションの動作やユーザーデータに影響を与える可能性があります。
- チェックリスト:暗号化、アクセス制御、セキュリティ基準への対応など、ツールのセキュリティ機能を評価してください。
スケーラビリティ
- 重要度:ツールは成長に合わせてアプリケーションをスケーリングできる必要があります。
- チェックリスト:ツールが増加した負荷をどのように処理するかの情報を探し、大規模環境で使用されているかどうかを確認してください。
人気だけでなく品質に注目
- 重要度:リポジトリの星の数が多いからと言って、必ずしも高品質とは限りません。徹底した評価が鍵です。
- チェックリスト:人気だけでなく、機能、パフォーマンス、コミュニティサポート、およびニーズとの整合性に基づいてツールを評価してください。
自己ホスト型オープンソースソリューション
- 重要度:Helm Chart、Terraformなどの自己ホスト型ソリューションは、データやインフラストラクチャを自分で管理できます。
- チェックリスト:ツールを自分自身のサーバーまたはプライベートクラウドに展開できるかどうかを確認し、依存関係やインフラ要件があるかどうかを確認してください。
古くなったり終了したプロジェクトには注意
- 重要度:古いツールの使用はセキュリティリスクや互換性の問題を引き起こす可能性があります。
- チェックリスト:最終更新日を確認し、リリース履歴をチェックし、プロジェクトのステータスに関するお知らせを見逃さないようにしてください。
オープンソースライセンスには注意
オープンソースのfeature flags管理ツールを選択する際には、使用目的やビジネスニーズに合ったライセンスを選択することが重要です。MITやApache 2.0などのライセンスは、他のものと比較してより良い選択肢とされています。
機能比較
オープンソースのfeature flags管理ツールは、しばしばLaunchDarklyの代替として言及されます。各ツールの機能を評価する際には、LaunchDarklyの機能リストを基準に使用することを好みます。この比較については、他の記事「LaunchDarklyの代替となる有力な選択肢は何ですか?」で詳しく説明しています。さらなる洞察を得るために、この記事をお読みいただくことをお勧めします。
結論
2023年のオープンソースのfeature flags管理landscapeでは、さまざまな技術ニーズや組織の規模に対応した豊富なオプションが提供されています。Unleashの包括的な機能切り替え管理から、GoFeatureFlagのミニマリストなアプローチまで、あらゆるシナリオに対応したツールがあります。チームの技術スタック、規模、および特定の要件に合ったツールを選ぶことが重要です。
また、データ分析や実験に重点を置くチームにとっては、GrowthbookやPostHogなどのツールが統合されたfeature flags管理ソリューションを提供しています。純粋なfeature flags管理ツールとデータ分析ツールを組み合わせることも、両方の強みを活用する人気のあるアプローチです。
適切なツールを慎重に選択することで、組織は効果的に機能の展開を管理し、ソフトウェア開発プロセスを強化し、データに基づいた意思決定を行うことができます。