The flow
Discover → assess → group into waves → replicate → test migrate → cut over → optimise. Most delays come from skipping the test migration or from unmapped dependencies, so give both real time.
1. Create the project and appliance
- Create an Azure Migrate project in the target geography.
- Deploy the Azure Migrate appliance on-premises (OVA for VMware, VHD for Hyper-V, script for physical) and give it read-only credentials for vCenter and guest discovery.
- Let discovery run for a few days to collect performance data.
2. Dependency analysis
Agentless dependency analysis shows TCP connections between servers. Use it to build application groups: everything that must move together.
| Pattern found | Wave decision |
|---|---|
| Web server talks to one DB server | Same wave |
| Many apps use one shared SQL instance | Move the DB first or last, with a latency test |
| Server talks to mainframe or appliance staying on-prem | Check latency over ExpressRoute before moving |
3. Assessment
Create an Azure VM assessment with performance-based sizing and a comfort factor. Review:
- Readiness issues (unsupported OS, boot type, disk count).
- Suggested sizes vs. your licensing: apply Azure Hybrid Benefit for Windows and SQL where you have it.
- Disk types: Premium SSD v2 or Standard SSD based on IOPS, not on-premises disk layout.
4. Replicate
Start replication for a wave from Migration and modernization. For VMware agentless, the appliance takes snapshots and sends deltas to the target region.
# Monitor replication status for the project (Az.Migrate module)
Get-AzMigrateServerReplication -ProjectName mig-prod -ResourceGroupName rg-migrate |
Select-Object MachineName, MigrationState, MigrationStateDescription, ReplicationStatus
5. Test migration (do not skip)
- Run Test migration into an isolated test VNet.
- Log in, check services start, run the app's smoke test, check licensing activation.
- Clean up the test migration. Fix and re-test as needed.
6. Cutover
- Agree the downtime window with app owners.
- Stop the app on-premises (or let Azure Migrate shut down source VMs).
- Run Migrate; a final delta sync runs before the Azure VM is created.
- Update DNS, load balancers and firewall rules.
- Run the smoke test and hand back to the app owner.
Tip
Lower DNS TTLs a few days before cutover so clients follow the new IP quickly.
7. After cutover
- Remove VMware Tools / Hyper-V integration leftovers; check the Azure VM agent is running.
- Enable Azure Backup, Azure Monitor Agent and Defender for Servers.
- Right-size after two to four weeks of real metrics; decommission sources after the soak period.
Checklist
- Appliance discovery and dependency data covers at least a full business cycle
- Waves defined by application group with owners
- Test migration passed for every server in the wave
- DNS TTL lowered, rollback plan (restart source VM) documented
- Backup, monitoring and patching configured on day one