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

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

最終更新:
💡 新機能を「少しずつ様子を見ながら」展開する
📌 このページのポイント
プログレッシブデリバリー(段階的リリース) カナリア 1〜5%の ユーザーに配信 問題検出 段階拡大 10〜50%に 段階的に拡大 メトリクス監視 全体展開 100%の ユーザーに配信 リリース完了 ロールバック 問題発生時 即座に戻す 自動ロールバック 従来のリリース 全ユーザーに一括配信 問題の影響が全体に及ぶ プログレッシブデリバリー 段階的に配信範囲を拡大 問題を早期発見・影響を最小化 リスクを最小限に抑えながら安全にリリースする手法
プログレッシブデリバリーのイメージ
ひよこ ひよこ
カナリアリリースとどう違うの?
ペンギン先生 ペンギン先生
プログレッシブデリバリーはカナリアリリースを含むより広い概念。カナリアは「一部のユーザーに新バージョンを配信」するデプロイ戦略の1つ。プログレッシブデリバリーは、カナリア+自動分析(エラー率やレイテンシ監視)+自動ロールバックフィーチャーフラグを組み合わせた総合的なアプローチだよ
ひよこ ひよこ
具体的にどう進める?
ペンギン先生 ペンギン先生
①新バージョンをデプロイ(まだ0%のトラフィック)、②5%のユーザーにトラフィックを振り分け、③自動で10分間メトリクスを分析(エラー率が閾値以下か)、④OKなら20%→50%→100%と段階的に増やす、⑤NGなら自動ロールバック。Argo RolloutsやFlaggerがKubernetes上でこの自動化を実現するよ
ひよこ ひよこ
フィーチャーフラグとの組み合わせは?
ペンギン先生 ペンギン先生
フィーチャーフラグはコードレベルで機能のON/OFFを切り替える仕組み。プログレッシブデリバリーのインフラレベルの段階展開と組み合わせると最強。例えば全ユーザーに新バージョンをデプロイ済みだけど、フィーチャーフラグで新機能は社内ユーザーだけON→ベータユーザー→全ユーザーと段階的にONにするんだよ
ひよこ ひよこ
小さなチームでもできる?
ペンギン先生 ペンギン先生
Kubernetes+Argo Rolloutsがなくても、Vercelやcloudflare Workersのようなプラットフォームはトラフィック分割機能を内蔵している。LaunchDarkly等のフィーチャーフラグサービスも手軽。最小構成ならフィーチャーフラグ+簡易的なA/Bテストから始めるのがおすすめだよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「プログレッシブデリバリー」って出てきたら「新機能を段階的に安全にリリースする手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Progressive Delivery」 = 段階的デリバリー
💬 Progressive(段階的に進む)Delivery(配信)。慎重に少しずつリリースしていくよ
← 用語集にもどる