フィーチャーフラグ(機能フラグ)
コードのデプロイとは独立して機能のオン/オフを切り替えられる仕組み。段階的ロールアウト・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件を見るSLA
Service Level Agreement(サービスレベル合意)の略。サービス提供者と利用者の間で合意するサービス品質の保証内容。SLOと違い、違反時のペナルティや補償を含む契約上の約束。
Blue-Green Deployment
ゼロダウンタイムデプロイ戦略の一つ。本番環境(Blue)と新バージョン(Green)を並行して稼働させ、トラフィックを切り替えてデプロイする。問題発生時に即座に切り戻せる。
ECR
Amazon Elastic Container Registryの略。AWSが提供するフルマネージドなDockerコンテナレジストリ。ECSやEKSと密に統合されており、IAMポリシーでアクセス管理できる。
ArgoCD
Kubernetesのための宣言的GitOps継続デリバリーツール。Gitリポジトリ上のマニフェストと実際のK8sクラスタの状態を常に同期させる。変更を検知して自動でデプロイする。
IT用語: カオスエンジニアリングとは|意図的に障害を起こして耐障害性を高める
本番環境に意図的な障害を注入しシステムの弱点を発見するカオスエンジニアリングの概念とChaos Monkeyを解説。
Jenkins
オープンソースのCI/CDサーバー。Groovyベースのパイプライン定義でビルド・テスト・デプロイを自動化できる。プラグインが豊富で高い拡張性を持つ。