2022年2月23日
Feature Flags
このレビューでは、フィーチャーフラグ、Split、長所と短所、ユースケース、そしてHarnessとの違いについて説明します。
Splitは、フィーチャーフラグの管理ツールを提供するSaaS企業です。リリースとデプロイを切り離すことで、エンジニアリングチームがより迅速に新機能をリリースできるようにすることに加え、製品のSplitにはあらゆる顧客を属性に基づくセグメント(「スプリット」と呼ばれる)に分類し、メトリクスサービスのデータを統合してログを使用し、フラグの動作を管理・測定する機能が含まれています。Splitを使えば、このデータに基づいて、基本的なアラートとキルスイッチの動作を伴うルールを作成することができます。
フィーチャーフラグ(トグルやスイッチとも呼ばれる)にはさまざまなユースケースがあり、エンジニアリングチームや運用チームが本番環境でコードをオフにしたりオンにしたりするための強力なツールとなっています。新しいコードがフィーチャーフラグの後ろに隠されると、開発者はユーザーの一部に対して特定のコードをオンにすることができます。ユーザー全体に影響を与えることはありません。
例えば、ウェブサイト上の特定の機能を、ニューヨークに住んでいるユーザーにだけ提供したいとします。問題ありません。フラグを作成し、ニューヨーク在住のユ ーザーを対象にすれば、魔法のように、その特定のターゲットグループにのみ新機能が表示されるようになります。フィーチャーフラグは開発者がコードベースで作成しますが、Splitのような企業は、これらのフラグを呼び出したり、UIで管理したり、全体のプロセスをより簡単にするためのツールを設計しています。
Splitは、チームが設定したあらゆるデータソースを使用し、このデータのイベントを活用して顧客体験の指標を定義し、ユーザーがさまざまなセグメントのフラグを有効または無効にしたときに応答することで差別化を図っています。
エンジニアリングチームは、顧客(「スプリット」と呼ばれる)をターゲットとするルールを作成することができ、一度これらのルールが作成されると、任意のスプリットをフィーチャーフラグや実験のターゲットとして使用することができます。市場にある様々なソリューションの中で、Split はサービス全体にわたってより高度なデータ活用を実現している点で際立っています。
メトリクスを使っている顧客セグメント全体でデータを使って機能を試すことは強力であり、Splitは新しいアイデアを市場に投入し、フラグの動作を進化させるという良い仕事をしています。
このようなデータの使用、特にフラグを本番環境でリリースすることで、フィーチャーフラグは完全に事後的なトグルに限定されるのではなく、ソフトウェアリリースプロセスの一部へと近づきます。
これにより、チームは自分たちのアプリの全ての新しい変更が、全ての環境で徹底的にテストされたという知識によって安心感を得ることができます。新しいターゲットでフラグが有効になると、チームは、いつ、どのような場合に、その変更のためにトラフィックを増加させるのが安全か、あるいは、これらの接続されたデータサービスに基づいて新しいユーザーグループに機能を拡張するかを知ることができます。
長所
短所
プログレッシブデリバリーとは、ソフトウェアの新機能や変更をいつ、どのように提供するかを組織が管理できるようにする手法です。これは、ブルーグリーンデプロイメントやカナリアデプロイメントのようなフラグ管理およびデプロイメント戦略の機能と実践の上に構築されています。最終的に、プログレッシブデリバリーは、ソフトウェア開発とデリバリープラクティスを組み合わせることで、組織がルールを作成した後、コントロールしながらデリバリーすることを可能にします。
フィーチャーフラグは、ユーザー全体に機能をリリースする前に、対象となる顧客のベータテスターグループに対して機能をテストし、ユーザーの意見を収集し、性能を評価するための素晴らしい方法です。プログレッシブデリバリーのこの分野では、開発者は、パフォーマンス、ユーザビリティー、および機能に関するフィードバックを、プライムタイムに向けて準備する前に消費者から得ることが非常に重要です。フラグは、特定のグループや個人をターゲットにして、その体験 に関するフィードバックを収集するために必要な、きめ細かなコントロールを提供します。
キルスイッチとは、その名の通り、エンジニアリングチームが品質問題を特定できたときに、何かを即座に停止させる仕組みのことです。フラグの文脈では、ある機能に対して突然大量のバグレポートが提出されることを意味します。ロールバックしてリリースの他の機能に影響を与える代わりに、そのバグのある機能のスイッチを切るだけでいいのです。以前の記事で素晴らしいキルスイッチの例を2つご紹介しています。
A/Bテスト
これは、より一般的なフラグ使用例なので、非常に簡単な説明で行きましょう。例えば、私たちのサイトに新しいボタンを追加し、それが赤か青か、より良い反応を得るかどうかを見たいとします。例えば、フラグを利用して、変更A(赤いボタン)をユーザーの50%に、変更B(青いボタン)を残りの50%にリリースします。そして、データを収集し、AとBのどちらがより良いパフォーマンスであったかを確認することができるのです。
私たちはあまり意識していませんが、フラグはインシデントを迅速に解決するために役立ちます。実際、フラグによって問題の発生を完全に防止することも可能です。インシデント解決の迅速化に 特化した記事では、フィーチャーフラグが解決できる実際のユースケースや事例を紹介しています。この文脈でのフラグは、エンジニアリングチームが重要な環境で何か問題があることに気づいた瞬間に、安全な方法で変更を無効化するための最初の防御線と考えることができます。
Splitは、多くのソフトウェア会社が提供する標準的な3段階の価格設定となっており、スタータープランでは基本機能、エンタープライズプランでは全機能が利用可能です。
また、データエクスポート機能など、最も評判の高い機能のいくつかは、ハイエンドのエンタープライズプランでのみ利用可能です。
ユーザビリティー ⭐⭐⭐
使い続けたいか ⭐⭐
オンボーディング ⭐⭐
パフォーマンス ⭐⭐⭐
検証内容 ⭐⭐⭐
統合化 ⭐⭐⭐⭐
SDKs ⭐⭐⭐
サポート ⭐⭐⭐
CI/CDの統合 ⭐
スケーラビリティ ⭐⭐⭐
セキュリティー ⭐⭐⭐
価格 ⭐⭐⭐
Splitは、統合に関して素晴らしい仕事をします。しかし、CI/CD(継続的インテグレーション/継続的デリバリー)パイプラインとの統合はできません。もし、全てを行う機能管理プラットフォーム(ガバナンス、セキュリティー、素晴らしい自動化とレポート機能を提供)をお探しなら、ぜひHarness Feature Flagsをチェックしてみてください。Harnessは、安全、シンプル、再現性、信頼性の高い方法でソフトウェアを提供することで、ソフトウェア開発チームの仕事をより快適なものにします。
まだツールを評価していますか?比較ページをご覧ください。Split、LaunchDarkly、Optimizely、Cloudbees Feature Managementに関する情報を掲載しています。これらのページでは、セキュリティー、ガバナンス、レポート、SDKなど、重要な機能の比較について説明しています。さらに、フィーチャーフラグ管理ツールのトップ6に関するブログ記事もあります。この記事を読んで、FFの旅を始めてください。
この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日 本語に訳したものです。無断複製を禁じます。原文はこちらです。