On this page
Is the handoff ready?
Use these checks before access expands or the first ticket begins.
Artifact
Ready: The previous and candidate builds are both identifiable and available.
Needs work: The team plans to rebuild an old version from an approximate commit.
Data
Ready: Migration compatibility and restore points are known.
Needs work: Rollback is assumed to work because the code can be redeployed.
Access
Ready: A named operator can perform the rollback with documented approval.
Needs work: The only person with access is unavailable during the release window.
Verification
Ready: A small set of service and user signals confirms recovery.
Needs work: Success is judged only by a deployment status of finished.
Define what rollback means
Rollback is not one action. It may mean redeploying the previous application artifact, reversing a configuration change, restoring a database snapshot, disabling a feature flag, or replaying a compensating transaction. A release plan should name which of those actions applies, who can authorize each one, and what evidence shows the system has returned to a known state. Write the definition in user and service terms. A web release may roll back by serving the previous container image, while a background job change may need the old handler to drain the queue before it can be removed. A data migration may have no clean reverse path and require a forward repair instead. Pretending that every release has the same rollback motion produces false confidence. Name the point of no return. Some changes become difficult to reverse after the first write, the first customer notification, or the first dependent service call. The release owner should know that boundary before approving the window, not discover it while reading logs during an incident.
Rehearse with the real artifact
Use the same build process, container image, environment configuration, and deployment path that production will use. A local checkout that starts successfully is not a rollback rehearsal. If the production pipeline injects environment variables, runs a migration step, or serves assets from a separate store, those details belong in the rehearsal. Capture the starting version and the target version before the exercise. After the rollback, verify that the running application reports the expected version and that the expected configuration is active. A deployment tool can finish successfully while an old replica remains in service or a cache continues to serve the new asset. Run the rehearsal in an environment with representative data shapes, permissions, and network boundaries. If a production-only integration cannot be exercised, record that limitation and substitute a controlled mock with the same contract. The point is to expose the steps that fail when they are performed under real conditions.
Test data compatibility first
Application rollback can fail even when the previous image is healthy. A new code path may have written a column, event type, or status value that the old code does not understand. Before the release, identify every schema or data-shape change and decide whether the old application can read the new state safely. Use the expand-and-contract pattern where possible: add compatible structures first, deploy code that can tolerate both shapes, and remove the old path in a later release. That sequencing turns a risky binary rollback into a controlled transition. When a destructive migration is unavoidable, rehearse the restore or forward repair separately and state the data-loss boundary. Record the backup or snapshot time and the restore verification. A backup that exists but has never been restored is only a hope. The rehearsal should show that the selected recovery point contains the expected records and that the restored system can serve the critical path.
Time the human path
Measure the whole recovery path, including detection, decision, approval, execution, and verification. The deploy command may take two minutes while the decision and access steps take forty. If the release window assumes a recovery time that excludes the human path, the plan is not operationally honest. Assign a backup operator and test their ability to perform the procedure. The primary engineer may be the author of the change or may be unavailable during the actual incident. A rehearsal that only works for one person is a single point of failure, especially when the release crosses time zones. Write the exact approval channel and the minimum information needed to authorize rollback. The approver should not have to reconstruct the release context from several dashboards while customers are affected. A short rollback card with the artifact, data condition, command, verification signal, and escalation contact is more useful than a long runbook nobody opens.
Turn gaps into release work
A rehearsal should produce findings, not a pass or fail badge. Maybe the previous artifact was not retained, the migration could not be reversed, the backup restore was slower than expected, or the verification signal was ambiguous. Each finding needs an owner and a deadline before the production window opens. Decide which gaps block release and which are acceptable with a documented mitigation. A missing restore test on a low-risk static site is different from an unverified rollback on a payment path. The release owner should make that risk decision explicitly, with the evidence in front of them. After the release, compare the actual recovery path with the rehearsal. Update the rollback card and the release checklist with what changed. A rehearsal is valuable only when it improves the next response; otherwise it becomes a ceremonial exercise that consumes time without reducing uncertainty.
Copy-ready brief
Put the operating agreement in writing.
Name the rollback motion, the point of no return, and the recovery evidence.
Use the production artifact, configuration path, representative data, and a backup operator.
Verify old code can read new data, or document the restore and repair boundary.
The client release owner accepts or blocks release based on rehearsal findings.
Frequently asked questions
Can a rollback rehearsal run in production?
A controlled production exercise is possible for some systems, but it needs its own approval, observability, and abort conditions. Most teams should start in a production-like environment and reserve production for a narrow verification.
What if the migration cannot be reversed?
Plan a forward repair or restore path, state the possible data loss, and decide whether the release can proceed. Do not describe the release as reversible if it is not.
How often should the rehearsal repeat?
Repeat it when the deployment path, data model, access model, or critical dependency changes. A quarterly cadence can keep the card current for stable systems, but the evidence should match the release being planned.
Sources
- NIST SP 800-34 Rev. 1: Contingency Planning Guide
Contingency planning and recovery concepts used to structure the rehearsal.
- Google SRE Workbook
Reliability and incident response practices referenced for recovery verification.
- DORA research program
Delivery and recovery research used to frame release learning.
- GitHub Docs: Managing a release
Release artifact concepts used when identifying the prior build.
