フィーチャーフラグ(機能フラグ)
コードのデプロイとは独立して機能のオン/オフを切り替えられる仕組み。段階的ロールアウト・A/Bテスト・カナリアリリース・緊急無効化をコードの再デプロイなしに実現する。
フィーチャーフラグとは?
フィーチャーフラグ(Feature Flag、機能フラグ・フィーチャートグル)は、コードのデプロイとは独立して、機能のオン/オフをランタイムで切り替えられる仕組みです。「コードを変えずに動作を変える」ことができます。
基本的なイメージ
if (featureFlags.isEnabled('new-checkout-flow')) {
// 新しい決済フロー
return <NewCheckout />;
} else {
// 従来の決済フロー
return <OldCheckout />;
}
フィーチャーフラグのユースケース
| 用途 | 説明 |
|---|---|
| 段階的ロールアウト | 最初は1%→10%→100%と段階的に有効化 |
| A/Bテスト | ユーザーを2群に分けて機能を比較 |
| カナリアリリース | 一部のユーザーで新機能を先行テスト |
| 緊急無効化(Kill Switch) | 問題発生時に再デプロイなしで機能を即停止 |
| ベータテスト | 特定ユーザー群にのみ新機能を公開 |
代表的なツール
| ツール | 特徴 |
|---|---|
| LaunchDarkly | エンタープライズ向け・高機能 |
| Flagsmith | オープンソース・セルフホスト可能 |
| Unleash | OSSの定番・k8s対応 |
| AWS AppConfig | AWSネイティブ |
まとめ
フィーチャーフラグは「デプロイとリリースを分離する」モダンなCD戦略の核心です。本番デプロイ済みでも機能を隠しておき、準備ができたらフラグをオンにするだけでリリースできます。
関連する用語 (DevOps)
全58件を見るCI/CD
継続的インテグレーション(CI)と継続的デリバリー/デプロイ(CD)の総称。コードをコミットするたびに自動でビルド・テスト・デプロイを行う開発プロセス。GitHub ActionsやJenkins・CircleCIなどのツールで実現する。
Datadog
クラウドネイティブな統合監視・APMプラットフォーム。インフラ・アプリ・ログ・トレースを一元的に監視できるSaaS型ツール。エージェントをサーバーにインストールして使用する。
Namespace
Kubernetesクラスタ内のリソースを論理的に分離する仕組み。開発・ステージング・本番環境の分離や、チーム間のリソース分割に使用する。デフォルトでdefault・kube-system等が存在する。
IT用語: カナリアリリースとは|一部ユーザーへ先行公開する安全なデプロイ手法
新バージョンを全ユーザーの5〜10%に先行公開し問題がなければ徐々に拡大するカナリアリリースの仕組みを解説。
Terraform
HashiCorpが開発するIaC(Infrastructure as Code)ツール。HCL(HashiCorp Configuration Language)でインフラをコードとして記述し、AWS・GCP・Azureなどのクラウドリソ
Chaos Engineering
本番システムに意図的に障害を注入し、システムの回復力(レジリエンシー)を検証する実践手法。Netflixが提唱しChaos Monkeyで有名。「障害は必ず起きる」という前提のもと、弱点を事前に発見する。