ロールフォワードは、問題が起きた変更を前の状態へ戻すのではなく、追加の修正を入れて正常な状態へ進める考え方です。英語では roll forward や fix forward と表現されることがあります。
まず押さえたいポイント
- 前の状態へ戻すのではなく、次の修正で収束させる
- ロールバックと対比して使われる
- データ変更や外部連携が進んでいるときに選ばれやすい
- 何でもロールフォワードにすればよいわけではない
- 追加修正の安全性と復旧速度を見て判断する
どんな場面で使うか
画面の不具合を小さな修正版で直す、条件分岐だけを追加で修正する、フィーチャーフラグで問題機能を止めたうえで次の修正版を出す、といった場面で使います。
特に、本番でユーザー操作が進んでいる、データベース変更が入っている、外部APIや課金処理がすでに動いている、といった場面では、単純に前の版へ戻す方が危険なことがあります。そのようなときに、変更後の状態を前提として追加修正を積み、サービスを止めずに収束させる考え方がロールフォワードです。
ロールバックとの違い
ロールバックは前の状態へ戻す考え方で、ロールフォワードは修正版で前へ進める考え方です。戻せるなら戻した方が安全な場面も多いため、ロールフォワードが常に優れているわけではありません。
大事なのは、どちらが早いかではなく、どちらが安全に収束できるかです。旧版へ戻すと別の不整合が起きる、すでに新しいデータ形式で処理が進んでいる、公開範囲だけを絞れば本体は動かせる、という状況ではロールフォワードが現実的になります。詳しくは ロールフォワードとは?戻すのではなく次の修正で進める考え方 で整理しています。
注意点
ロールフォワードは、その場の思いつきで修正を積み増すことではありません。原因が見えているか、修正範囲を小さく閉じられるか、追加修正を検証できるか、公開範囲やトラフィックを絞れるかを確認して進める必要があります。
そのため、デプロイやリリースの仕組みと一緒に考えると理解しやすいです。フィーチャーフラグ、段階公開、監視、成功判定が整っているほど、ロールフォワードを安全に選びやすくなります。