3 min read
Azure Migrate: Cloud Migration Made Simple
Azure Migrate provides a unified hub for cloud migration. Discover, assess, and migrate servers, databases, and applications to Azure.
Migration Workflow
Discover → Assess → Migrate → Optimize
│ │ │ │
└─────────┴─────────┴─────────┘
Azure Migrate Hub
Supported Sources
| Workload | Source |
|---|---|
| Servers | VMware, Hyper-V, Physical, AWS, GCP |
| Databases | SQL Server, MySQL, PostgreSQL |
| Web Apps | ASP.NET, Java, PHP |
| VDI | RDS, Citrix, VMware Horizon |
Create Migrate Project
az migrate project create \
--name my-migrate-project \
--resource-group myRG \
--location eastus
Deploy Appliance (VMware)
- Download appliance OVA from portal
- Deploy in vCenter
- Register with Azure Migrate project
- Start discovery
# On appliance, register with Azure
$appliance = Get-AzMigrateAppliance -ProjectName "my-migrate-project" -ResourceGroupName "myRG"
Register-AzMigrateAppliance -Appliance $appliance -CredentialPath "C:\creds"
Discovery
# View discovered servers
az migrate discovered-server list \
--migrate-project-name my-migrate-project \
--resource-group myRG
# Output includes:
# - Server names
# - Operating systems
# - CPU, memory, disk
# - Running applications
# - Dependencies
Assessment
# Create assessment
az migrate assessment create \
--migrate-project-name my-migrate-project \
--resource-group myRG \
--assessment-name web-servers-assessment \
--azure-location eastus \
--azure-offer-code PAYG \
--sizing-criteria PerformanceBased \
--percentile Percentile95 \
--time-range Month
Assessment provides:
- Azure VM sizing recommendations
- Monthly cost estimates
- Readiness status
- Migration blockers
Server Migration (VMware)
# Enable replication
az migrate replication create \
--migrate-project-name my-migrate-project \
--resource-group myRG \
--source-server-id discovered-server-id \
--target-resource-group target-rg \
--target-vm-name migrated-vm \
--target-vnet target-vnet \
--target-subnet default \
--license-type WindowsServer
# Test migration
az migrate test-migrate \
--replicating-item-name migrated-vm \
--migrate-project-name my-migrate-project \
--resource-group myRG \
--test-network test-vnet
# Cutover (actual migration)
az migrate migrate \
--replicating-item-name migrated-vm \
--migrate-project-name my-migrate-project \
--resource-group myRG
Database Migration
# SQL Server to Azure SQL
# Use Database Migration Service
az dms create \
--name my-dms \
--resource-group myRG \
--location eastus \
--sku-name Premium_4vCores \
--subnet /subscriptions/.../subnets/dms-subnet
az dms project create \
--name sql-migration \
--service-name my-dms \
--resource-group myRG \
--source-platform SQL \
--target-platform SQLDB
Web App Migration
# Use App Service Migration Assistant
# Scans IIS sites and creates migration plan
Invoke-WebRequest -Uri "https://appmigration.microsoft.com/api/download" -OutFile "AppServiceMigrationAssistant.msi"
msiexec /i AppServiceMigrationAssistant.msi /quiet
Dependency Analysis
# Enable agentless dependency analysis
az migrate dependency-analysis enable \
--migrate-project-name my-migrate-project \
--resource-group myRG \
--server-id discovered-server-id
# View dependencies
az migrate dependency list \
--migrate-project-name my-migrate-project \
--resource-group myRG \
--server-id discovered-server-id
Migration Waves
Plan migrations in groups:
- Non-critical workloads (pilot)
- Development/test servers
- Production workloads
- Business-critical systems
Azure Migrate: your path to the cloud.