UStackUStack
OpenFlags icon

OpenFlags

OpenFlagsはオープンソースのセルフホスト型フィーチャーフラグ管理。アプリSDKでローカル評価し、制御プレーンで安全に段階展開。

OpenFlags

OpenFlagsとは?

OpenFlagsは、オープンソースのセルフホスト型フィーチャーフラグシステムで、プログレッシブデリバリーと安全なロールアウトによりチームが変更をデプロイするのを支援します。制御プレーンとSDKを提供し、アプリケーションコードでフラグをローカル評価して、各変更ごとに再デプロイせずにフィーチャー挙動を有効化できます。

OpenFlagsの主な目的は、リリースワークフローをサポートすること—パーセンテージロールアウト、対象アクティベーション、制御された有効化など—で、フラグ評価を低レイテンシに保ちつつ、ランタイムの所有権をチームのインフラ内に保持します。

主な機能

  • セルフホスト型フラグインフラ: フラグストレージ、ターゲティングロジック、ランタイムの所有権をホスト型プラットフォームに依存せず、自社インフラ内に保持。
  • 型付きSDKによるローカル評価: TypeScriptパッケージを使ってアプリ内でフラグを評価し、コード内でローカル実行することで高速で予測可能なチェックを実現。
  • プログレッシブデリバリー制御: 機能を全ユーザーに一斉有効化せず、制御されたスライス(パーセンテージロールアウト含む)に展開。
  • 詳細なターゲティング: 特定ユーザー対象に基づいてフラグをアクティブ化し、異なるコホートに異なるフィーチャー挙動を提供。
  • 焦点を絞ったREST制御プレーン: フラグ制御プレーンと管理用のシンプルなREST APIを使用。モノレポの一部としてサーバー、ダッシュボード、SDK、ドキュメントに専用役割を設計。
  • トグルとロールアウト管理ダッシュボード: Reactベースの管理UIで、チームがリリースをトグルしロールアウト設定を管理。

OpenFlagsの使い方

  1. ドキュメントとクイックスタートから開始: 提供ドキュメントを使ってサーバー、ダッシュボード、SDKを環境にセットアップ。
  2. アプリでSDKクライアントを作成: API URL、プロジェクト識別子、ユーザー識別子でクライアントを初期化。
  3. アプリケーションコードでローカル評価: SDKを使ってフラグが有効かチェック(例: flags.isEnabled("flag_name")を呼び出し)、条件付きで挙動をレンダリング。
  4. 制御プレーンからロールアウト設定を管理: ダッシュボードまたはREST APIでパーセンテージベース有効化や対象アクティベーションなどのロールアウト挙動を定義。

ユースケース

  • 新しいユーザーエクスペリエンスを段階的に有効化: UIやワークフローをフィーチャーフラグで制御し、全トラフィックではなく制御されたユーザーサブセットに有効化。
  • 対象ユーザーでベータテストを実行: ユーザー識別子を対象に特定コホートで機能をアクティブ化し、グループ間の挙動比較をしつつ他を影響なしに。
  • パーセンテージロールアウトでリリース影響範囲を縮小: 変更を徐々に展開(例: ユーザーの35%へ)、アプリ再ビルド・再デプロイなしでロールアウト挙動を調整。
  • パフォーマンス重視アプリでフラグチェックを高速化: アプリ内ローカル評価でフィーチャーチェックを低レイテンシでランタイム一貫性確保。
  • インフラ内で所有権を維持: セルフホスト制御プレーンで運用・監査範囲を自社スタック内に保持。

FAQ

  • OpenFlagsはセルフホスト型ですか、それともクラウドホスト型ですか? OpenFlags Cloudは近日公開予定で、現行はオープンソースのセルフホスト型として位置づけられています。

  • フィーチャー評価はどう機能しますか? OpenFlagsはSDKを使ったローカル評価をサポートするため、フラグチェックはリモートコール不要でアプリコード内で発生します。

  • どのようなロールアウトパターンをサポートしますか? サイトではパーセンテージロールアウト、詳細ターゲティング、制御有効化によるプログレッシブデリバリーを記載。

  • OpenFlagsにはどのようなコンポーネントが含まれますか? モノレポにサーバー(制御プレーンのBun駆動API)、Reactベースダッシュボード、TypeScript SDKパッケージ、ドキュメントが含まれる。

  • SDKはどの言語/フレームワーク向けですか? サイトではJavaScript優先のSDK使用を強調し、Bun、React、Next.js、Vite、Nodeアプリ対応を記載。

代替案

  • マネージドフィーチャーフラグプラットフォーム (SaaS): これらは通常、フラグ管理をホストサービスに集約します。OpenFlagsのセルフホスト型制御プレーンと比較して、評価と運用責任がベンダーのプラットフォームに依存しやすくなります。
  • IaC駆動のロールアウト(専用フラグ評価なし): チームはデプロイ、ルーティング、または設定トグルで段階配信を近似できます。OpenFlagsとは異なり、ローカル評価のための専用フィーチャーフラグSDKワークフローを提供しません。
  • 異なるアーキテクチャのオープンソースフィーチャーフラグサービス: 代替のオープンソースシステムは類似の概念(フラグ、ターゲティング、ダッシュボード)を提供する可能性がありますが、SDKアプローチ、制御プレーンAPI設計、ローカル評価の扱いに異なるトレードオフがあります。
OpenFlags | UStack