Skip to content
Latchkey

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

プログレッシブデリバリーとは、ソフトウェアを段階的かつ制御された形でリリースするための包括的なアプローチであり、問題を監視しつつ素早くロールバックしながら、変更を拡大していく対象者に公開していくものです。

新しいリリースを一度に全員へ有効化するのではなく、プログレッシブデリバリーはそれを段階的に引き上げていきます。この戦略は、canary release・フィーチャーフラグ・traffic shifting といった技法を組み合わせ、単一の悪い変更が及ぼしうる害の大きさを限定します。

中核となる原則

プログレッシブデリバリーは、制御された公開という考え方で継続的デリバリーを拡張します。一度にすべてをリリースするのではなく、変更はまず少数の集団に到達し、良好に振る舞う場合にのみ拡大します。対象者は段階的に増えていき、問題の兆候があればロールアウトを停止または反転させます。

含まれる技法

  • 新バージョンへトラフィックの一部を送る canary release。
  • ユーザーごとに機能を制御するフィーチャーフラグ。
  • 負荷を段階的に増やす traffic shifting。
  • 内部ユーザーから外側へ広げるリングベースのロールアウト。

影響範囲を限定する

中心的な利点は封じ込めです。リリースが壊れていても、現在公開されている小さな割合だけが影響を受け、広がる前に止められます。これにより、全社規模になりかねない障害を、素早く修正される軽微な一時的トラブルへと変えます - 悪い変更のコストの劇的な削減です。

観測して判断する

プログレッシブデリバリーは、それが監視するシグナルの質に左右されます。各段階で、新バージョンのエラー率・レイテンシ・ビジネスメトリクスをベースラインと比較し、続行・一時停止・ロールバックの判断はそのデータによって導かれます - チームが成熟するにつれて、ますます自動化されていきます。

なぜ高速な CI と相性が良いのか

プログレッシブデリバリーは、build・出荷・ロールバックを迅速かつ確実に行えることを前提とします。高速で信頼できる pipeline は、プログレッシブデリバリーが依存する小さく頻繁なリリースを実用的にします。一方、遅かったり不安定だったりする pipeline は、チームを大きくリスクの高い一括リリースへと押し戻してしまいます。

重要なポイント

  • プログレッシブデリバリーは、拡大していく対象者へ変更を段階的にリリースします。
  • canary・フラグ・traffic shifting を組み合わせて影響範囲を限定します。
  • 続行するかロールバックするかの判断は、観測されたメトリクスによって導かれます。

関連ガイド