【ぷろぐれっしぶでりばりー】

プログレッシブデリバリー とは?

最終更新:
💡 公開する範囲を制御し、結果を見て次へ進む

新しいバージョンや機能を限られた範囲へ公開し、結果を確認しながら展開を進める考え方。カナリアやフィーチャーフラグとの関係、進行・停止の判断、元に戻す際の制約を解説します。

📌 このページのポイント
段階展開:結果を見て範囲を制御限られた範囲へ割合・対象を決める結果で判断エラー率・応答時間等条件を満たす問題・判定不能範囲を広げる次の段階でも確認停止して確認必要なら元へ戻す自動分析・切替は、ツールと設定による保存データまで必ず元に戻るわけではない
人数の絵は範囲を制限するイメージで、推奨割合ではありません。変更に合う方法と判断基準を先に決め、問題と判定不能では対応を分けます。
ひよこ ひよこ
カナリアリリースと同じこと?
ペンギン先生 ペンギン先生
カナリアは、一部へ新バージョンを配って確認する戦略だよ。プログレッシブデリバリーは、それを含め、公開範囲を制御して結果を見ながら進める考え方として使われる。フィーチャーフラグで機能を公開する対象を分ける方法もあるんだ。
ひよこ ひよこ
どうやって展開を進めるの?
ペンギン先生 ペンギン先生
たとえば一部へ公開して、エラー率や応答時間、業務上の結果を確認する。条件を満たせば範囲を広げ、問題があれば止める。何%で始めるか、何分確認するかは、そのサービスの利用量やリスクに合わせて決めよう。
ひよこ ひよこ
自動で問題を見つけて戻してくれる?
ペンギン先生 ペンギン先生
使うツールと設定によるよ。Argo Rolloutsなら、指標と成功・失敗の条件を定義して、進行や中止を判断できる。成功とも失敗とも判定できない場合に、一時停止して人が判断する使い方もあるんだ。
ひよこ ひよこ
フィーチャーフラグは何に使う?
ペンギン先生 ペンギン先生
デプロイしたコードの機能を、対象に応じて有効にできる。新バージョンへ通信を分ける方法と、同じバージョン内の機能を切り替える方法は分けて考えよう。両方を必ず組み合わせる必要はなく、公開する変更に適した方法を選ぶよ。
ひよこ ひよこ
元へ戻せば、影響は全部消える?
ペンギン先生 ペンギン先生
新しい処理で保存したデータや外部への操作は、コードや通信先を戻すだけでは取り消せない場合があるよ。元のバージョンとの互換性や、戻せない処理をどう扱うかも考える。監視で見えていない問題がないか、展開後も確認しよう。
もっと詳しく知りたい人へ

A/Bテストを始めれば、プログレッシブデリバリーになる?

A/Bテストは、複数の案を比べて効果を調べるためのものです。段階展開と組み合わせられますが、目的は同一ではありません。公開の進行・停止を何で判断するかを決め、比較実験をしただけで安全に展開できたとみなさないようにします。

「段階展開」という機能名なら、自動監視もある?

機能ごとに確認します。たとえばLaunchDarklyのProgressive rolloutsは時間とともに割合を増やす機能で、指標の監視はGuarded rolloutsに含まれます。名称だけで、問題検知や自動復帰まで備わると判断しません。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「プログレッシブデリバリー」って出てきたら「公開範囲を制御し、結果を見て変更を広げる考え方」と思えばだいたいOK!
📖 おまけ:英語の意味
「Progressive Delivery」 = 段階的に進めるデリバリー
💬 progressiveは段階的に進むことを表します。新バージョンへの通信の切替や、機能を有効にする対象の拡大などに使われます。

参考資料

← 用語集にもどる