デプロイ(コードを出す)とリリース(機能を見せる)を分け、段階的に公開・すぐに戻せるようにする。
デプロイはコードを本番に出すこと、リリースはその機能をユーザーに見せることです。この2つを分けると、コードは先に出しておき、機能を見せるタイミングや相手を後から選べます。その切り替えに使うのが Feature Flag(機能のオン・オフを設定で切り替える仕組み)です。問題が起きたら、コードを戻さずにフラグを切るだけで止められます。
| やり方 | 内容 | 使いどころ |
|---|---|---|
| 社内公開 | 社員だけにオン | 本番のデータで最終確認 |
| 段階的リリース | 1% → 10% → 50% → 100% と広げ、各段階でエラー率や指標を確かめる | 影響の大きい変更、性能が心配な変更 |
| 対象を絞る | 国・プラン・特定の顧客だけにオン | ベータ版、大口顧客との先行導入 |
| A/B テスト | ランダムに分けた群で旧と新を比べる | 効果を数字で確かめたいとき |
| キルスイッチ | 重い機能や外部連携をすぐ止められるようにしておく | 障害時の影響を小さくする |
フラグは増えるほど組み合わせが複雑になるので、全員に公開したら消す作業もタスクに入れます。
面接ではこう答える
デプロイはコードを本番に出すこと、リリースはその機能をユーザーに見せることです。この2つを Feature Flag で分けると、コードは先に出しておき、社員だけ、1%、10% と見せる範囲を広げながら、エラー率や指標を確かめられます。問題があればコードを戻さずにフラグを切るだけで止められるので、私は影響の大きい変更ほどこの形で出すようにしています。
PdMとの関わりリリースの日程・対象・広げ方の判断と、問題が起きたときの止め方の合意に使います。