フィーチャーフラグ(運用)
コード内のスイッチで、新しいコードをデプロイせずに、実行時に機能のオン/オフを切り替えられる。「コードをデプロイする」ことと「機能をリリースする」ことを切り離し、問題が起きたときは即座に止める「キルスイッチ」にもなる。
仕組みは、機能を条件(if flag_enabled("new_checkout"))で包み、その値を設定ファイルやLaunchDarkly/Flagsmith/Unleashのようなフラグサービスで外から制御し、リアルタイムに変更できるようにするものだ。用途は、リリースとデプロイの分離(コードを非公開のまま配り、好きな時に有効化)、段階的ロールアウト(まず5%のユーザー、次第に拡大)、A/Bテスト(グループごとに別の版を出す)、そしてキルスイッチ(壊れた機能を、デプロイを戻さず即座に止める)。利点は、デプロイのリスクが下がり(コードは無効のまま置いておける)、実験やロールアウトをコード変更なしに制御できることだ。トレードオフは、フラグの後片付けが必要なこと。古い「フラグ負債」を放置すると、コードが使われない分岐だらけになる。プログレッシブデリバリーの要であり、カナリアデプロイとも関係が深い。