リスクなしで
ソフトウェアを
より速く革新
Innovate Your Software Faster without Risk
Feature Flagsのオプションには、LaunchDarkly以外に何がありますか?
この記事は LifeCycle によって書かれました。ここで英語で書かれたオリジナルの記事を確認できます
Feature Flagsや実験ツールが豊富にありますが、LaunchDarklyの代替となる適切な選択肢を特定するのは困難かもしれません。そこで、私はFeature Flags管理ツールを数多く見てきました — すべてではありませんが — 公式ウェブサイト、ドキュメント、GitHubリポジトリ、およびブログを調査し、その比較ではオープンソースの利用可能性、SaaS提供、およびLaunchDarklyとのフィーチャー比較に焦点を当てました。
簡単な概要については、左側の「このページについて」のToC(目次)を参照して、ご興味のあるセクションに移動してください。
Feature Flagsツール
私はGoogle、GitHub、Reddit、Hacker News、その他の有力なオンラインプラットフォームなどのリソースを活用して、さまざまなFeature Flagsツールを広く調査しました。以下は私の調査結果の一覧です:
Apptimize、Bucketeer、CloudBee、ConfigCat、DevCycle、FeatBit、FeatureHub、FeatureProbe、ff4j、Flagship、Flagr、Flagsmith、Flipper、Flipt、geteppo、GoFeatureFlag、Growthbook、Harness、piranha、PostHog、prefab.cloud、rmflags、split.io、StatSig、tggl.io、Unleash
オープンソースのFeature Flagsツール
LaunchDarklyは、インフラレベルの開発者ツール/プラットフォームを提供しています。開発者にとって、このようなツールがソフトウェアに深く統合されている場合、そのオープンソース性は非常に重要です。したがって、オープンソースのツールはLaunchDarklyの有力な代替として追加の考慮を受けるべきです。以下はオープンソースのFeature Flagsツールの一覧です:
Bucketeer、FeatBit、FeatureHub、FeatureProbe、ff4j、Flagr、Flagsmith、Flipper、Flipt、GoFeatureFlag、Growthbook、piranha、PostHog、Unleash
技術スタック
これらの代替は、ほとんどがフロントエンドアプリケーションにJavaScript/TypeScriptを利用しています。ここでいう「技術スタック」とは、主にバックエンドおよびデータサービスを指します。この議論では、オープンソースでないツールは含めていません。
コード言語 | ツール |
---|---|
Javascript/Typescript | Bucketeer、Growthbook、Unleash |
Python | PostHog、Flagsmith |
C# | FeatBit |
Java | ff4j、piranha |
Go | Flagr、Flipt、GoFeatureFlag |
Rust | FeatureProbe |
Dart | FeatureHub |
Ruby | Flipper |
オープンソースHelm Chart展開ソリューション
これらのオープンソースツールはDocker Composeのインストールオプションを提供していますが、Helm Chartの展開が企業でより好まれるようになっています。ここで、オンラインで見つけたオープンソースのHelm Chart展開ソリューションをリストアップします:
FeatBit、Flagsmith、PostHog、Unleash
フィーチャーズ
さまざまなプロバイダーがさまざまな機能を提供しており、それらを包括的にすべてリストアップすることは困難です。したがって、私はLaunchDarklyのいくつかの主要な機能を紹介します。この比較では、ツールが特定の機能を提供しているかどうかを考慮しています。
フラグのターゲティング
「ターゲティング」とは、Feature Flagsを特定のコンテキストに応じて異なる動作をするように構成できる能力を指します。これにより、特定の条件下でのみ特定の機能またはコードを実行できます。例としては、特定のブラウザを使用している訪問者にのみウェブサイトの機能を表示したり、資格のあるユーザーにアカウントのアップグレードオプションを提供したり、ユーザーのタイムゾーンに基づいて異なる挨拶を表示したりすることが挙げられます。ターゲティングの設定には、コード内でコンテキストを提供し、フラグの構成でルールを定義する必要があります。この機能をサポートしているプロバイダーの一部を以下に示します:
Apptimize、Bucketeer、CloudBee、ConfigCat、DevCycle、FeatBit、FeatureHub、FeatureProbe、ff4j、Flagship、Flagr、Flagsmith、Flipper、Flipt、geteppo、GoFeatureFlag、Growthbook、Harness、piranha、PostHog、prefab.cloud、rmflags、split.io、tggl.io、Unleash
再利用可能なセグメント
「再利用可能なセグメント」とは、複数のFeature Flagsで使用できるセグメントを作成できる能力を指します。つまり、特定のユーザーやコンテキストを1度定義し、そのセグメントを使用してさまざまなFeature Flagsの動作を制御できるということです。「再利用可能」であると呼ばれるのは、一度セグメントが作成されると、同じグループ定義を何度も再作成する必要なく、さまざまなフラグやシナリオで繰り返し使用できるためです。この機能により、Feature Flagsの管理が簡素化され、特定のグループのユーザーを複数のシナリオでターゲティングする際に特に役立ちます。この機能をサポートしているプロバイダーの一部を以下に示します:
Bucketeer、CloudBee、ConfigCat、DevCycle、FeatBit、Flagsmith、Growthbook、Harness、split.io、Unleash
ワークフロー
「ワークフロー」とは、Feature Flagsに関連するアクションのスケジューリングと自動化を可能にする機能を指します。ワークフローは基本的に、変更を行うために事前にスケジュールされた一連のアクションです。これにより、Feature Flagsの管理に必要な手動タスクが段階的に自動化されます。これには以下が含まれます:
- プログレッシブロールアウトワークフロー: これらのワークフローは、Feature Flagsのターゲティングの割合を段階的に増やします。
- メンテナンスウィンドウ: このタイプのワークフローにより、ターゲティングを一時的にオンまたはオフに切り替えることができます。
- カスタムワークフロー: これらは、ユーザーによって定義された特定の展開プロセスを管理するためにカスタマイズされています。
この機能をサポートしているプロバイダーの一部を以下に示します:
CloudBee、ConfigCat、DevCycle、FeatBit、Flagsmith、Growthbook、Harness、split.io、Unleash
統合 & APIs
APIコントロール
"APIコントロール"とは、APIを使用してFeature Flagsワークフローのさまざまな側面を管理および自動化する機能です。これらのコントロールを使用すると、次のことが可能になります:
- カスタムインテグレーションの構築:Feature Flagsシステムと統合するためのカスタマイズされたソリューションの作成。
- Feature Flagsの状態変更の自動化:テックスタック内の他のツールを使用してFeature Flagsの状態を自動的に変更する。
- 開発者のダッシュボードとの統合:カスタム開発環境にツールをシームレスに組み込むことができます。
- データの抽出と統合:データウェアハウスで他のイベントデータと一緒に使用するためにフラグのバリエーションデータを取得します。
- フラグ、セグメント、およびルールの管理の自動化:複数のプロジェクト間でバリエーションルール、セグメント、およびフラグをコピーするためのスクリプトの作成。
- ダイナミックなルールの更新:他のツールからのビジネスロジックに基づいてリアルタイムでターゲティングルールを変更する。
- カスタムUIおよび可視化の作成:Feature Flagsの管理と表示のためのユニークなユーザーインターフェースと可視化の設計。
以下は、この機能をサポートするいくつかのプロバイダです:
Apptimize、ConfigCat、FeatBit、Flagr、Flagsmith、Flipper、Growthbook、split.io、Unleash
WebHooks
"Webhook"は、Feature Flag Tools内の変更に反応するための統合を作成できる機能を指します。変更が発生した場合、たとえばFeature Flagsの更新や新しいアカウントメンバーの招待など、Feature Flag ToolはWebhookに設定されたURLにHTTP POSTペイロードを送信します。この機能は、外部の課題トラッカーの更新、サポートチケットの管理、新しいフィーチャーロールアウトについて顧客に通知するなど、さまざまなアプリケーションに役立ちます。多くの統合がWebhookを使用して構築されています。以下は、この機能をサポートするいくつかのプロバイダです:
Bucketeer、CloudBee、ConfigCat、FeatBit、FeatureHub、Flagsmith、Flipper、Flipt、geteppo、GoFeatureFlag、Growthbook、Harness、split.io、tggl.io、Unleash
Observability Toolsとの統合
"Observability Toolsとの統合"は、オブザーバビリティ、リアルユーザーモニタリング(RUM)、アプリケーションパフォーマンス管理(APM)に関連するサードパーティアプリケーションの統合を指します。これには、アプリケーションのパフォーマンスと信頼性をモニタリング、分析、最適化するのに役立つツールが含まれます。この機能をサポートするいくつかのプロバイダは以下のとおりです:
ConfigCat、FeatBit、FeatureProbe、Flagsmith、split.io、Unleash
Experimentation Toolsとの統合
"Experimentation Toolsとの統合"は、特に実験に関連するサードパーティアプリケーションとの統合を指します。このような統合により、外部ツールを活用して実験戦略を向上させることができます。この機能をサポートするいくつかのプロバイダは以下のとおりです:
Apptimize、ConfigCat、FeatBit、FeatureHub、Flagsmith、Growthbook、PostHog、split.io、StatSig、Unleash
その他
Launchdarklyは開発者のエクスペリエンスを最大化するための多くの統合方法を提供しています。最大のFeature Flags管理サービスプロバイダの1つとして、split.ioは他の代替手段よりもはるかに多くの機能を提供しています。
実験ツール
一部のFeature Flagsツールは、もともとA/Bテストやデータ分析のために設計されていましたが、現在では分析機能を補完するためにネイティブなFeature Flags機能も提供しています。さらに、包括的なA/Bテスト分析機能を提供するツールもあります。
A/Bテストまたはデータ分析発祥のFeature Flagsツール:
Apptimize、geteppo、Flagship、Growthbook、PostHog、StatSig
A/Bテスト分析機能を提供するFeature Flagsツール:
DevCycle、FeatBit、FeatureProbe、split.io
オーディットログ
"オーディットログ"とは、プラットフォーム内でのユーザーのアクティビティを記録およびログするレコードのことを指します。このログには、誰がどのようなアクションを行ったか、いつ行われたかなどの詳細が通常含まれています。Feature Flagsの変更や設定の変更、チームメンバーの権限の更新などの変更の履歴が透明に記録されており、セキュリティやコンプライアンスのために重要です。オーディットログは、システムの監視、トラブルシューティング、システムの信頼性の検証に使用することができ、Feature Flagsの活動の透明性や監視のために欠かせない機能です。この機能をサポートするいくつかのプロバイダは以下のとおりです:
CloudBee、ConfigCat、DevCycle、FeatBit、Flagsmith、Flipper、geteppo、split.io、StatSig、Unleash
SSO
"SSO"はSingle Sign-Onの略で、ユーザーが1つのログイン資格情報(名前とパスワードなど)を使用して複数のアプリケーションにアクセスできるセッションとユーザー認証サービスを指します。SSOの使用により、ユーザーは異なるアプリケーションごとに異なるユーザー名とパスワードを記憶して入力する必要がなくなり、ログインプロセスが簡素化されます。LaunchDarklyの文脈では、この機能はおそらくプラットフォームを組織の既存のSSOシステムと統合する機能を指しており、シームレスで安全なアクセス制御が可能になっています。この機能をサポートするいくつかのプロバイダは以下のとおりです:
CloudBee、ConfigCat、FeatBit、FeatureHub、Flagsmith、Growthbook、Harness、PostHog、split.io、StatSig、Unleash
アクセス制御
"アクセス制御"とは、プラットフォーム内のさまざまな機能やリソースへのアクセスを管理および制限する機能を指します。通常、これには異なるユーザーやグループに対して権限と役割を設定し、LaunchDarkly内のFeature Flagsやその他の要素を誰が表示、編集、または管理できるかを決定することが含まれます。効果的なアクセス制御は、システムのセキュリティと整合性を維持するために重要です。許可されていない人物が変更を加えたり、機密情報にアクセスしたりすることを防止します。この機能をサポートするいくつかのプロバイダは以下のとおりです:
CloudBee、ConfigCat、FeatBit、FeatureHub、Flagsmith、Growthbook、split.io、StatSig、Unleash
使われていないFeature Flagsの削除ツール
使われていないFeature Flagsの削除ツールは、コードベースで使用されなくなったFeature Flagsを特定して削除するためのツールです。使われていない、古いFeature Flagsは、クラッターや潜在的な技術的負債の原因となる可能性があります。以下のツールが言及されています:
- rmflags:このツールは、コードから使われていないFeature Flagsを削除するために設計されたツールです。クリーンなコードベースを保持するために役立ちます。
- Copilot:正確には使われていないFeature Flagsを削除するためのツールではありませんが、GitHub Copilotは様々なコーディングタスクを補助するAIペアプログラマであり、使われていないコード、つまり使われていないFeature Flagsを特定して削除するのに役立つ場合があります。
- piranha:PiranhaはUberが開発したオープンソースのツールで、使われていないFeature Flagsを自動的に削除するためのものです。不要なFeature Flagsに関連するコードを特定して削除し、コードの管理を簡素化し、技術的負債を減らすことができます。
これらのツールは、ソフトウェア開発におけるFeature Flagsのライフサイクルを管理するためのそれぞれ独自の手法と機能を持っています。
OpenFeatureの実装
OpenFeatureは、特定のベンダーのシステムやプラットフォームに依存しないように設計されたFeature Flagsシステム向けのベンダー中立的なオープンソースの標準です。ベンダーニュートラルでオープンソースの標準を提供することにより、開発者は特定のベンダーのFeature Flagsサービスやプラットフォームに依存せずにFeature Flagsを実装することができます。これにより、コードを大幅に書き直したり調整することなく、さまざまなFeature Flagsサービス間を切り替えることができます。この標準により、異なるFeature Flagsツールの互換性と相互運用性が確保され、独自の形式や統合に制約されることなくFeature Flagsソリューションの選択または変更が可能になります。これらのFeature Flagsツールは、互換性のあるSDKを提供してOpenFeatureをサポートすることを発表しています:
CloudBee、ConfigCat、DevCycle、FeatBit、Flagsmith、Flipt、GoFeatureFlag、Harness、PostHog、split.io、Unleash
重要ながしばしば測定されない側面
- パフォーマンス:ツールは高い同時リクエスト、たとえば1日100万以上のアクティブユーザーや大規模なインサイトデータストアを処理できるかどうか?
- コスト:このような高いボリュームでのSaaSまたはセルフホスティングのための価格モデルはどのようになっていますか?
- LaunchDarklyとの類似性:ツールは、Feature Flagsのロジック操作、SDKの実装、および全体的なユーザーエクスペリエンスについてLaunchDarklyとどのように比較されますか?
- その他
Feature Flagsツールの商用サポート
商用サポートは、Feature Flagsツールにとって重要です。信頼性を確保し、問題の迅速な解決を図ることは、安定したソフトウェアの運用にとって不可欠です。効果的な実装のための専門的なガイダンス、セキュリティとコンプライアンスの基準への遵守、スケーラビリティ、統合能力を提供します。さらに、高度な機能やトレーニングへのアクセスを提供することで、データに基づいた意思決定や効率的なソフトウェア管理が可能になります。商用サポートは、SaaSおよびセルフホストの2つのタイプに分類されます。
セルフホスト型商用ソリューションをサポートするツール。このカテゴリには、オンプレミス展開を希望または必要とするビジネスを対象としたセルフホスト型商用ソリューションを提供するツールが含まれます。
ConfigCat、FeatBit、Flagship、Flagsmith、Growthbook、PostHog、split.io、Unleash
シートベースではないツール。これらは、ユーザー数や「シート」の数に基づかない価格モデルを提供し、中小および大規模なビジネスにとってより費用効果の高いオプションを提供します。
ConfigCat、FeatBit、StatSig、prefab.cloud
プライバシー規制とSLAをサポートするツール。これらのツールは、プライバシー規制基準に準拠し、信頼性のあるサービスを提供するためのサービスレベル契約(SLA)を提供するSaaSソリューションを提供しています。
CloudBee、ConfigCat、DevCycle、Flagsmith、Growthbook、PostHog、split.io、StatSig、Unleash
LaunchDarklyが高価である理由と他のツールの機会
LaunchDarklyは業界で標準となったさまざまな機能を提供しており、そのため高額となっています。しかし、年間約70,000ドルという莫大な費用を考慮すると、すべての顧客がこれらの機能を必要とするわけではありません。これにより、顧客のニーズにより適した代替手段が開けてきます。
LaunchDarklyからの移行
LaunchDarklyからの移行は有益な場合があります。切り替えてからようやくLaunchDarklyの価値が理解できることがあります。ベンダーロックインを避けるためには、新しいプロバイダーと互換性のあるオープンフィーチャー標準のFeature Flagsを使用することが望ましいです。一部の代替手段には、LaunchDarklyからの移行を容易にするためのツールやサービスさえ提供しています。
結論 - 有望な代替手段
LaunchDarklyの代替手段を評価するシニアエンジニアとして、以下の基準を優先します:
- 馴染みのあるテックスタックを使用したオープンソース
- オブザーバビリティツールとの統合
- 実験ツールとの統合
- エッセンシャルな機能セット
- OpenFeatureの実装
- 商用サポートと価格
- パフォーマンス
- LaunchDarklyとの類似性と移行の容易さ
- Feature Flagsサービスに重点を置いた実験(実験に優れた多くのツールがFeature Flagsとの良好な統合を提供しているため)
私の好ましい選択肢は、FeatBit、Flagsmith、およびUnleashです。これらは商用サポートを提供するオープンソースのソリューションです。オープンソースを気にしない場合、ApptimizeとConfigCatも有効です。
私は、この検討がLaunchDarklyにとどまらず、Feature Flagsサービス分野でSplit.ioなどの他の主要なプレイヤーも含まれるよう推進しています。
フィードバックをお願いします
もし当該Feature Flagsツールについて不正確な記載があった場合は、訂正のために Twitter で連絡してください。また、貴社のツールがLaunchDarklyの代替手段として挙げられておらず、それを含めたい場合は、ぜひお知らせください。