OpenFlags
OpenFlagsはオープンソースのセルフホスト型フィーチャーフラグ管理。アプリSDKでローカル評価し、制御プレーンで安全に段階展開。
OpenFlagsとは?
OpenFlagsは、オープンソースのセルフホスト型フィーチャーフラグシステムで、プログレッシブデリバリーと安全なロールアウトによりチームが変更をデプロイするのを支援します。制御プレーンとSDKを提供し、アプリケーションコードでフラグをローカル評価して、各変更ごとに再デプロイせずにフィーチャー挙動を有効化できます。
OpenFlagsの主な目的は、リリースワークフローをサポートすること—パーセンテージロールアウト、対象アクティベーション、制御された有効化など—で、フラグ評価を低レイテンシに保ちつつ、ランタイムの所有権をチームのインフラ内に保持します。
主な機能
- セルフホスト型フラグインフラ: フラグストレージ、ターゲティングロジック、ランタイムの所有権をホスト型プラットフォームに依存せず、自社インフラ内に保持。
- 型付きSDKによるローカル評価: TypeScriptパッケージを使ってアプリ内でフラグを評価し、コード内でローカル実行することで高速で予測可能なチェックを実現。
- プログレッシブデリバリー制御: 機能を全ユーザーに一斉有効化せず、制御されたスライス(パーセンテージロールアウト含む)に展開。
- 詳細なターゲティング: 特定ユーザー対象に基づいてフラグをアクティブ化し、異なるコホートに異なるフィーチャー挙動を提供。
- 焦点を絞ったREST制御プレーン: フラグ制御プレーンと管理用のシンプルなREST APIを使用。モノレポの一部としてサーバー、ダッシュボード、SDK、ドキュメントに専用役割を設計。
- トグルとロールアウト管理ダッシュボード: Reactベースの管理UIで、チームがリリースをトグルしロールアウト設定を管理。
OpenFlagsの使い方
- ドキュメントとクイックスタートから開始: 提供ドキュメントを使ってサーバー、ダッシュボード、SDKを環境にセットアップ。
- アプリでSDKクライアントを作成: API URL、プロジェクト識別子、ユーザー識別子でクライアントを初期化。
- アプリケーションコードでローカル評価: SDKを使ってフラグが有効かチェック(例:
flags.isEnabled("flag_name")を呼び出し)、条件付きで挙動をレンダリング。 - 制御プレーンからロールアウト設定を管理: ダッシュボードまたは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設計、ローカル評価の扱いに異なるトレードオフがあります。
代替品
Rectify
RectifyはSaaS向けオペレーション統合プラットフォーム。監視・分析・サポート・ロードマップ/変更履歴・エージェント管理を会話で一元操作。
GitBoard
GitBoard は macOS のメニューバーで GitHub Projects のカンバンを表示。ステータスで絞り込み、課題検索、作成・割り当て可能。
Studio CLI
Studio CLIでターミナルからWordPress Studioの機能を管理。ローカルサイトやWordPress.comのプレビュ-作成・更新・削除、認証に対応。
PingPulse
PingPulseはAIエージェントのワークフローをリアルタイムで可視化し、引き継ぎの追跡と失敗・停止・順序違いを検知。アラート設定も対応。
KIT.domains
KIT.domainsはドメインの期限とSSLを自動監視し、DNS整合性(MX/NS)変更を通知。共有ダッシュボードと更新カレンダーで可視化。
Sleek Analytics
Sleek Analyticsは軽量でプライバシーに配慮した分析ツール。リアルタイム訪問者追跡で流入元・閲覧・滞在時間を可視化。