1. Define the drill scope
An Azure-to-Azure DR drill should start with a narrow, written scope. Pick one representative VM and decide what the drill is meant to prove before anyone touches the environment. Otherwise the team will confuse "a VM was created" with "the service recovered."
The scope should describe the source workload, the target Azure subscription, region, resource group, network, subnet, expected VM size, and the success criteria. For some drills, success may be booting the VM and logging in. For others, success may require application checks, user access, database connectivity, and dependency validation.
Start with non-production unless the team has already practiced the path. The point of the first drill is to find missing assumptions while the business is not depending on the outcome.
- Choose a non-production VM that represents real disk layout, OS behavior, and application startup.
- Record the expected Azure subscription, region, resource group, network, subnet, and VM size.
- Define whether the drill proves VM boot, application readiness, user access, or all three.
- Identify the people who can approve, run, and observe the drill.
2. Confirm prerequisites
Most DR delays come from missing prerequisites, not from the restore command itself. Azure permissions, resource quotas, target networking, DNS assumptions, identity dependencies, and firewall rules can all block recovery after the backup copy is already available.
Treat the preflight as a recovery rehearsal. Confirm the selected recovery point, the health of the protected source, the target subscription and region, the expected network path, and the people who can approve the action. If a required permission or target resource is missing, that is a useful drill finding before failover begins.
The preflight should also include cleanup planning. A drill that creates temporary resources but does not define cleanup can leave cost, access, or routing changes behind.
- Confirm source health, backup freshness, replication status, and selected recovery point.
- Verify credentials, Azure permissions, target subscription limits, and resource quotas.
- Check network routes, security groups, DNS expectations, and identity dependencies.
- Keep rollback and cleanup steps ready before the failover starts.
3. Run controlled failover
During failover, measure each stage separately. Azure resource creation, disk attachment, VM boot, login readiness, service startup, and application validation are different parts of the timeline. Combining them into one number hides the real bottleneck.
Keep the drill controlled. Use the agreed recovery point, avoid destructive source changes unless the scenario explicitly requires them, and record every manual decision. Manual steps are not failures, but undocumented manual steps are future risk.
If Azure capacity, quotas, naming conflicts, or network rules slow the drill, capture that directly. Those findings are often more useful than a clean demo because they show what would affect a real recovery.
- Start the failover from the agreed recovery point.
- Track Azure resource creation time, VM boot time, and login readiness separately.
- Keep the source workload protected unless the drill explicitly tests a destructive scenario.
- Record any manual decision, retry, or environmental blocker.
4. Validate the recovered workload
A recovered VM is not the same as a recovered service. The VM can boot while the application fails, while identity is unavailable, while DNS points to the wrong place, or while downstream systems reject traffic.
Validation should use the viewpoint of the user and the dependent system. Can an operator log in? Are services running? Can the application reach its database? Are certificates, secrets, DNS, and firewall rules correct? Does the application owner agree that the workload is usable?
Record validation evidence while the result is fresh. Screenshots, logs, timestamps, and short notes are enough if they let another engineer understand what passed and what still needs work.
- Confirm OS boot, disk attachment, logs, services, and application health checks.
- Test identity, DNS, network access, database connectivity, and external integrations.
- Ask the application owner to confirm the workload is usable.
- Capture screenshots, logs, or notes that prove the validation result.
5. Decide failback or cleanup
A DR drill needs a clean ending. Before the drill starts, decide whether the recovered VM will remain as a standby artifact, be failed back, be isolated for inspection, or be destroyed after evidence is captured.
Cleanup is part of operational safety. Temporary credentials, firewall openings, DNS changes, public IPs, disks, snapshots, and test resources should not be left behind because the team moved on after the exciting part of the drill.
Also confirm that ongoing protection remains in the expected state. A drill should not accidentally reduce backup coverage or leave production assumptions changed without review.
- Confirm whether the recovered VM should stay online, be isolated, or be removed.
- Preserve drill evidence before cleanup.
- Validate that production protection remains in the expected state.
- Remove temporary access, firewall rules, and resources that were created only for the drill.
6. Review the recovery evidence
The runbook is only useful if it improves after every drill. A successful drill should still produce changes: clearer owners, better validation steps, updated timing, or removed ambiguity. A failed drill should produce even more valuable findings.
Review evidence in terms of recovery stages. How old was the selected restore point? How long did Azure provisioning take? How long until the VM booted? How long until the application was ready? Which stage required waiting on a person, permission, or missing detail?
Use the review to update the next drill. The goal is not to make one page look complete. The goal is to make the next recovery less dependent on memory.
- Record restore point age, Azure provisioning time, VM boot time, and application-ready time.
- List blockers with owners and due dates.
- Update the runbook where an operator had to guess.
- Repeat the drill after major application, network, identity, or Azure changes.
Measure these times separately
- Selected restore point age
- Azure resource creation time
- Operating system boot time
- Application-ready time
- Manual approval or waiting time
- Validation and cleanup time
Turn this into a restore check
XReplicator has a measured Azure-to-Azure DR drill for a small VM, but real recovery time depends on Azure control-plane response, VM size, OS boot, networking, identity, and application startup.
Use this runbook to measure those stages separately instead of treating failover as one opaque number.
Resource contents
Use this resource for
Planning, review, and evaluation. The content stays focused on recovery decisions and evidence, not proprietary implementation details.