【ぷろぐれっしぶでりばりー】
プログレッシブデリバリー とは?
最終更新:
💡 公開する範囲を制御し、結果を見て次へ進む
新しいバージョンや機能を限られた範囲へ公開し、結果を確認しながら展開を進める考え方。カナリアやフィーチャーフラグとの関係、進行・停止の判断、元に戻す際の制約を解説します。
📌 このページのポイント
- 変更を一度に全員へ公開せず、対象や配信範囲を制御する
- エラー率や応答時間など、進行・停止の判断基準を先に決める
- カナリアやフィーチャーフラグは使える手段で、全部が必須ではない
- 自動の分析や切替には設定が必要で、データの変更も考慮する
カナリアリリースと同じこと?
カナリアは、一部へ新バージョンを配って確認する戦略だよ。プログレッシブデリバリーは、それを含め、公開範囲を制御して結果を見ながら進める考え方として使われる。フィーチャーフラグで機能を公開する対象を分ける方法もあるんだ。
どうやって展開を進めるの?
たとえば一部へ公開して、エラー率や応答時間、業務上の結果を確認する。条件を満たせば範囲を広げ、問題があれば止める。何%で始めるか、何分確認するかは、そのサービスの利用量やリスクに合わせて決めよう。
自動で問題を見つけて戻してくれる?
使うツールと設定によるよ。Argo Rolloutsなら、指標と成功・失敗の条件を定義して、進行や中止を判断できる。成功とも失敗とも判定できない場合に、一時停止して人が判断する使い方もあるんだ。
フィーチャーフラグは何に使う?
デプロイしたコードの機能を、対象に応じて有効にできる。新バージョンへ通信を分ける方法と、同じバージョン内の機能を切り替える方法は分けて考えよう。両方を必ず組み合わせる必要はなく、公開する変更に適した方法を選ぶよ。
元へ戻せば、影響は全部消える?
もっと詳しく知りたい人へ
A/Bテストを始めれば、プログレッシブデリバリーになる?
A/Bテストは、複数の案を比べて効果を調べるためのものです。段階展開と組み合わせられますが、目的は同一ではありません。公開の進行・停止を何で判断するかを決め、比較実験をしただけで安全に展開できたとみなさないようにします。
「段階展開」という機能名なら、自動監視もある?
機能ごとに確認します。たとえばLaunchDarklyのProgressive rolloutsは時間とともに割合を増やす機能で、指標の監視はGuarded rolloutsに含まれます。名称だけで、問題検知や自動復帰まで備わると判断しません。
まとめ:ざっくりこれだけ覚えればOK!
「プログレッシブデリバリー」って出てきたら「公開範囲を制御し、結果を見て変更を広げる考え方」と思えばだいたいOK!
📖 おまけ:英語の意味
「Progressive Delivery」 = 段階的に進めるデリバリー
💬 progressiveは段階的に進むことを表します。新バージョンへの通信の切替や、機能を有効にする対象の拡大などに使われます。