Evaluate On-Premises Servers, Data, and Applications for Migration — Lesson
AZ-305 › Unit 4: Design infrastructure solutions › Design migrations › Evaluate on-premises servers, data, and applications for migration
Evaluate On-Premises Servers, Data, and Applications for Migration — Lesson
A large international retail bank in Frankfurt starts its Azure migration confidently. The team picks ten "obvious" lift-and-shift candidates from a spreadsheet of 800 VMs and migrates the first one. It comes up fine in Azure but a downstream payment system breaks immediately — nobody knew the migrated VM was its database. Two weeks of firefighting later, the team realises the spreadsheet was last updated 30 months ago, and roughly 40% of the entries are either wrong, missing, or pointing to decommissioned hardware. They reset the plan, deploy the Azure Migrate appliance, and let it discover and dependency-map the estate over the next 30 days. The next ten migrations land cleanly because every VM's dependencies are now visible. This lesson is about doing that assessment work first — using Azure Migrate, Azure Arc for SQL Server assessments, SQL Server Migration Assistant, and dependency mapping — so that the migration plan is built on what the estate actually is, not what the spreadsheet says it was.
We will work through Azure's assessment story the way the AZ-305 exam expects you to: choosing among Azure Migrate (Server, Database, Web App, SQL assessments), Azure Arc for SQL Server assessments — the supported successor to the retired Data Migration Assistant (DMA) — SQL Server Migration Assistant (SSMA), and using dependency mapping to discover hidden coupling. Reference: the AZ-305 exam study guide, particularly Chapter 4 Skill 4.3 on migrations, and Microsoft Learn on Azure Migrate.
Why This Matters
Assessment is the cheapest insurance any migration buys, and the easiest one to short-change under deadline pressure. A 30-day assessment costs almost nothing relative to migrating blind and discovering surprises in production. The AZ-305 exam tests this LO because architects routinely under-invest in assessment — partly because it doesn't produce visible "progress", partly because the spreadsheet looks adequate. Done right, assessment produces a sized, prioritised, dependency-aware migration plan that survives contact with reality on day 1 of cutover and every day after that.
The career payoff is concrete: every migration scoping conversation, every "we discovered a hidden dependency" post-mortem, every regulator's question about "did you assess each workload?", every cost-overrun root-cause analysis, and every post-migration optimisation review touches assessment. If you can match a workload type — Windows VM, Linux VM, SQL Server, web app, file share, SAP — to the right assessment tool and configure dependency mapping correctly, you will pass this slice of the exam and lead assessment work like a senior architect, turning a list of 800 VMs in a spreadsheet into an actionable migration plan with sequenced waves, evidence-based sizing, and known dependency closures.
Prerequisites
Before working through this lesson, make sure you can answer each prompt below in one or two sentences.
- VM sizing. Can you map a 4 vCPU / 16 GB Windows VM on-prem to an Azure VM SKU? — Self-check: which family is general-purpose?
- SQL Server compatibility levels. Are you familiar with versions / compatibility levels? — Self-check: which Azure target accepts the widest set of features?
- Network bandwidth basics. Can you estimate the bandwidth needed to replicate a 500 GB VM in 24 hours? — Self-check: roughly what Mbps is that?
- Dependencies. Do you know how application dependencies cause hidden failures? — Self-check: name three categories of dependency.
- Assessment methodology. Have you seen the typical TCO and "Azure readiness" reports? — Self-check: which one quantifies cost?
If any of these feels shaky, pause and review the migration-assessment intro in Unit 4 of the AZ-305 guide before continuing with this lesson.
Learning Objectives
By the end of this lesson, you will be able to:
- Analyse an on-prem estate and translate it to an assessment scope (which inventory tool to use, which workloads to assess first).
- Evaluate trade-offs between
Azure Migrateserver/database/web/SQL assessments,Azure Arc for SQL Serverassessments,SQL Server Migration Assistant. - Design a dependency-mapping deployment (agent-based vs agentless) and read its output.
- Recommend the right Azure target (VM, Managed Instance, Azure SQL DB, App Service, AKS) for each assessed workload based on compatibility findings.
- Recognise anti-patterns — spreadsheet-only assessment, skipping dependency mapping, sizing without right-sizing, missing baseline window — and rewrite them.
- Interpret an Azure Migrate readiness report (Ready / Conditionally Ready / Not Ready / Unknown) and act on each category.
Building Blocks
Read this section as a glossary. Each term: analogy, formal definition, why it matters.
Azure Migrate — Azure's hub-and-spoke assessment service. Like a survey crew that walks your estate before you move house. Formally, Microsoft.Migrate/migrateProjects plus an on-prem appliance VM that discovers and dependency-maps. Modules: Server Assessment, Database Assessment, Web App Assessment, SQL Assessment. It matters because Azure Migrate is the canonical Microsoft-recommended assessment tool — exam questions on this LO route to it.
Azure Migrate appliance — A virtual appliance you deploy on-prem (VMware OVA, Hyper-V VHD, or physical). Formally, a Windows Server VM that runs discovery, performance collection, agentless dependency analysis (polling TCP connection data from the discovered servers), and posts findings to Azure Migrate. It matters because the appliance is the single point of integration with the on-prem environment.
Agentless dependency mapping — Dependency discovery without installing software on each server. Formally, the appliance polls TCP connection data from the servers every 5 minutes, gathering the names of processes and applications with active connections plus the destination port. Generally available for VMware VMs, Hyper-V VMs, physical servers, and servers running in other public clouds such as AWS and GCP. It matters because agentless is both the path of least resistance and the Microsoft-recommended approach for dependency visualization and analysis.
Agent-based dependency mapping — Dependency discovery via agents (the Service Map solution in Azure Monitor) installed on each server, sending connection telemetry to a Log Analytics workspace. Supported only in the classic view, which is scheduled for deprecation by the end of 2026; you can't onboard new servers for agent-based dependency analysis. It matters mainly as legacy: existing workspaces stay readable until then, but new estates go agentless.
Data Migration Assistant (DMA) — A downloadable Windows app for SQL Server assessment and migration, retired from July 16, 2025. Formally, it ran against an on-prem SQL Server and produced a compatibility report (deprecated features, blocking issues, recommended fix-ups) per target (Azure SQL DB / MI / SQL on VM). It matters because DMA is still the answer older study material gives; the current answer is that assessments on SQL Server instances are run using Azure Arc for SQL Server or using Azure Migrate, so route every "what is incompatible if I move this SQL Server?" question there.
SQL Server Migration Assistant (SSMA) — A downloadable tool for migrating non-Microsoft databases (Oracle, MySQL, Postgres, DB2, Access, Sybase) to SQL Server / Azure SQL. Formally, performs schema conversion, code translation (e.g., PL/SQL T-SQL), and data migration. It matters because moving from Oracle / DB2 to Azure SQL is a common scenario the exam tests, and SSMA is the supported path.
Server readiness category — Azure Migrate's classification for each assessed server. Four values: Ready, Conditionally Ready (fixable issues), Not Ready, Readiness Unknown (data incomplete). It matters because the migration plan should sequence Ready servers first while remediating Conditional ones in parallel.
TCO assessment — A cost comparison of running the estate on-prem vs in Azure, factoring in hardware refresh, licensing, OPEX, and Azure pricing. Formally, an Azure Migrate output that takes the sized-for-Azure recommendations and computes monthly cost. It matters because the TCO is the input to the business case in CAF's Strategy phase.
Right-sizing — Sizing a target VM based on observed performance (CPU/memory utilisation over time) rather than provisioned size. Formally, Azure Migrate offers "as-on-prem" sizing (match the source) and "performance-based" sizing (recommend the smallest Azure SKU that handles the workload at 95th-percentile utilisation). It matters because performance-based sizing usually cuts cost by .
Baseline window — The performance-collection period used for right-sizing. Default 1 day, configurable up to 31 days. It matters because a too-short window misses month-end batch peaks; a sensible default is days to capture cyclical load.
Deep Dive
1. Assessment tools — pick by workload type
| Workload | Assessment tool |
|---|---|
| Windows / Linux VMs (VMware, Hyper-V, physical) | Azure Migrate Server Assessment |
| SQL Server instances (on-prem) | Azure Migrate SQL Assessment (or Azure Arc for SQL Server) |
| Web apps (ASP.NET / Java) | Azure Migrate Web App Assessment |
| Oracle / MySQL / Postgres / DB2 | SQL Server Migration Assistant (SSMA) |
| File shares | Azure Migrate Web App / native discovery + Storage Migration Service |
| Containerised apps already in K8s | Azure Migrate containerisation feature (App Containerization) |
[!TIP] Run Server Assessment for every VM; run SQL Assessment for every SQL instance; where instances are already Arc-enabled, run the SQL assessment through
Azure Arc for SQL Server. DMA is retired — do not plan around it. Together these give you the full picture for Microsoft-stack workloads.
2. The Azure Migrate appliance — discovery to assessment
The appliance is a single VM deployed in the on-prem environment. It connects to vCenter / Hyper-V / physical inventory via supplied credentials, walks the inventory continuously, collects performance counters every minute, and uploads anonymised summaries to Azure Migrate. The migration team then runs assessments against the discovered inventory.
[!IMPORTANT] The appliance requires outbound HTTPS to
*.migration.windowsazure.comand other Microsoft endpoints. In air-gapped or proxy environments, configure the appliance to use the corporate proxy or deployAzure Arc-enabled serversas an alternative discovery path.
3. Dependency mapping — finding the hidden coupling
Dependency mapping answers "what talks to what?". Without it, migrating a VM in isolation breaks dependent systems. Azure Migrate offers two modes:
| Mode | How | Pros | Cons |
|---|---|---|---|
| Agentless | Appliance polls TCP connection data (process, application, destination port) every 5 minutes | No software on guests; quick start; GA for VMware, Hyper-V, physical and AWS/GCP servers; recommended mode | Dependency export and the long-range view cover the last 30 days |
| Agent-based | Service Map agents on each VM Log Analytics | Persistent for servers already onboarded | Classic view only; scheduled for deprecation by end of 2026; no new servers can be onboarded |
Agentless is the recommended approach for dependency visualization and analysis, and it already reports process and application names on active connections — there is no process-detail reason left to reach for agents. Agent-based mapping survives only for servers already onboarded to the classic view.
// Agent-based (classic view only, deprecating by end of 2026): inter-VM connections from Log Analytics
VMConnection
| where TimeGenerated > ago(30d)
| where Direction == "outbound"
| summarize bytes=sum(BytesSent), conns=count()
by SourceVm=Computer, DestinationIp=RemoteIp, DestinationPort
| where bytes > 1000000 // > 1 MB / 30d to filter noise
| order by bytes desc[!WARNING] A common assessment mistake: run dependency mapping for 24 hours and miss the weekly Sunday-night batch process that connects the migrating VM to a critical downstream service. Run dependency mapping for days, ideally a full month, to catch cyclical patterns.
4. Sizing strategies — as-on-prem vs performance-based
Azure Migrate offers two sizing strategies. The exam tests recognising the difference.
| Strategy | How | Use when |
|---|---|---|
| As-on-prem | Match the source VM's allocated CPU/memory directly | Conservative; want to preserve headroom; no perf data available |
| Performance-based | Recommend the smallest SKU that handles the observed 95th-percentile load | Cost optimisation; most production assessments |
Performance-based requires at least a few days of performance collection; with a 14-day window, it typically downsizes of the estate.
assessment:
sizingCriterion: PerformanceBased
perfHistoryDuration: P14D # 14 days
percentile: P95
comfortFactor: 1.3 # 30% headroom on top of P95
azurePricingOffer: MSAZR0003P # Pay-as-you-go (or specific RI offer)
azureLocation: WestEurope
reservedInstance: RI3Year
storageReplicationType: ZRS5. Database assessment — Azure Migrate, Azure Arc, and SSMA
SQL Server is its own assessment universe. The exam tests the difference among the supported tools:
| Tool | Source | Target | Use for |
|---|---|---|---|
Azure Migrate SQL Assessment | On-prem SQL Server discovered by appliance | Azure SQL DB / MI / SQL on VM | At-scale assessment of 100s of SQL instances |
Azure Arc for SQL Server assessment | Arc-enabled SQL Server instances | Same targets | SQL readiness and sizing for estates already Arc-enabled |
SQL Server Migration Assistant (SSMA) | Oracle / MySQL / Postgres / DB2 / Access / Sybase | SQL Server / Azure SQL | Migrating from non-Microsoft RDBMS to Azure SQL |
The flow: Azure Migrate (or Azure Arc for SQL Server) discovers which instances exist, sizes them, and reports readiness per target — which features won't work in Azure SQL DB but will in MI; SSMA handles the foreign-RDBMS scenarios. DMA has no place in this flow any more: it was retired on July 16, 2025.
[!TIP] The SQL assessment output includes a per-target recommendation: e.g., "this database can move to Azure SQL DB with no changes" or "uses cross-database queries; needs MI or VM". Match each database to the simplest target that accommodates its features.
6. Interpreting the readiness report
Azure Migrate's assessment report classifies each workload:
| Category | Meaning | Action |
|---|---|---|
| Ready | All checks pass; can migrate as-is | Add to first migration wave |
| Conditionally Ready | Migrate-able with remediation (e.g., disk size, OS upgrade) | Remediate in parallel; add to second wave |
| Not Ready | Blocking issues (e.g., unsupported guest OS, network protocols) | Replace / refactor / retire |
| Readiness Unknown | Assessment data incomplete | Extend baseline window; install agents |
[!IMPORTANT] A Conditionally Ready workload with a fixable issue (e.g., 4 TB disk needing split into two managed disks TB) is not the same as a Not Ready workload (e.g., Windows Server 2003). The plan must distinguish them.
7. Web app and container assessment
Azure Migrate has dedicated assessment modules for web apps and containerised workloads.
Web App Assessment discovers ASP.NET and Java web apps on Windows / Linux servers and recommends App Service SKUs with compatibility flags. Common compatibility issues: classic ASP, COM components, legacy ISAPI filters, custom IIS modules — these typically force a "lift-shift to VM" outcome rather than App Service.
App Containerization is a separate Azure Migrate feature that takes an existing ASP.NET (.NET Framework) or Java app and packages it into a container with the right base image and config, ready for AKS deployment. It is the canonical answer when the customer wants to modernise but cannot rewrite to .NET 8 on Linux.
| Source | Recommended Azure target | Tool |
|---|---|---|
| ASP.NET on IIS, no custom modules | App Service (Windows) | Web App Assessment |
| ASP.NET on IIS with custom modules | App Service for Containers or AKS | App Containerization |
| Java Tomcat / WebSphere / WebLogic | App Service (Linux) or AKS | Web App Assessment |
| Java with vendor-specific app server | AKS with vendor container | App Containerization |
[!NOTE] Containerising a legacy .NET Framework app preserves Windows kernel dependencies — the resulting image is a Windows container, which requires AKS Windows node pools (slightly more expensive but operationally similar to Linux node pools).
8. Cost report nuances
The TCO report computes Azure cost across several dimensions. Architects should ensure the cost basis matches reality:
- Reserved Instance assumption. Default is Pay-as-you-go. Switching to 1 or 3 year RI typically drops cost .
- Azure Hybrid Benefit. Apply AHB if the customer has Software Assurance — typically off Windows licensing.
- Storage class. Default is Premium SSD; downsize to Standard SSD or HDD where workload allows.
- Currency and region. The default region's pricing may differ from the target region.
[!TIP] Generate two TCO reports: a "conservative" (PAYG, no AHB) and a "realistic" (RI + AHB). Show both to the sponsor — the conservative number is what they pay if they do nothing; the realistic is what they pay with normal optimisation.
Worked Examples
Easy — pick the assessment tool
Problem. A customer has 200 Windows VMs in VMware, 50 SQL Server instances, and 10 Oracle databases. Recommend an assessment toolchain.
Solution. Deploy Azure Migrate appliance against vCenter; run Server Assessment for the 200 VMs and SQL Assessment for the 50 SQL instances. The SQL Assessment reports per-database readiness and compatibility detail; DMA is retired and is no longer part of this toolchain. Run SSMA for Oracle against each of the 10 Oracle databases to plan migration to Azure SQL MI (or to keep on Oracle on Azure VMs if the schema is too complex). Plan a 30-day discovery window.
Medium — dependency mapping recommendation
Problem. A team needs to migrate a 3-tier application: web, app, database, hosted across 20 VMs in VMware. They have no documentation of dependencies. Recommend an assessment approach.
Solution. Deploy the Azure Migrate appliance with agentless dependency analysis enabled and let it run for at least 30 days — the range the dependency export and long-range view cover. Agentless already resolves process and application names on active connections, so no agent install is needed; agent-based analysis is classic-view-only and no longer onboards new servers. Use the dependency map output to identify the 3-tier coupling and any unexpected cross-app connections (e.g., a shared file-share dependency). Plan migration waves so each wave is a complete dependency-closed group.
Hard — Oracle assessment with hybrid target
Problem. A customer has 50 Oracle databases. Some are small ( GB) with simple schemas; others are large ( TB) with extensive PL/SQL. Compliance prevents data-out-of-region. Recommend an assessment approach.
Solution. Use SSMA for Oracle against every database to assess schema complexity, PL/SQL compatibility, and data size. The output partitions the databases into three groups:
- Convert to Azure SQL MI — small schemas with mostly portable PL/SQL.
- Stay on Oracle — large or complex schemas where conversion cost > value. Run on Azure VMs with Oracle licences (BYOL).
- Refactor — medium databases worth re-platforming to PostgreSQL Flexible Server (after schema conversion via
Babelfishor manual rewrite).
Compliance: ensure SSMA's data probes stay in-region; some PII may need redaction before assessment data leaves on-prem.
Visual Explanations
Figure 1 — Assessment-tool decision flow
Figure 2 — Appliance and dependency topology
Figure 3 — Assessment artifact summary
| Output | Purpose |
|---|---|
| Inventory list | Every VM / DB / app discovered |
| Sizing recommendation | Azure SKU per workload (as-on-prem or performance-based) |
| Readiness category | Ready / Conditional / Not Ready / Unknown |
| Dependency map | Connections between workloads |
| Cost estimate | Monthly Azure cost per workload, TCO comparison |
| Compatibility report | Per-database SQL feature compatibility (Azure Migrate SQL Assessment / Azure Arc for SQL Server / SSMA) |
Common Mistakes
❌ Myth: "Our CMDB inventory is enough — we don't need Azure Migrate." ✅ Reality: CMDB inventories drift; Azure Migrate is current and includes performance data, dependencies, and readiness checks the CMDB lacks. Use the CMDB as a sanity-check, not a substitute. Why it's tricky: CMDBs are venerable; teams trust them; reality bites in production.
❌ Myth: "As-on-prem sizing is safer." ✅ Reality: As-on-prem preserves over-provisioning. Performance-based sizing with a -day window plus comfort factor is both cheaper and reliable. Why it's tricky: "Safer" feels true; the cost gap can be .
❌ Myth: "Skip dependency mapping — we know our apps." ✅ Reality: Every team thinks they know their apps; dependency mapping routinely surfaces of connections nobody documented. Why it's tricky: Confidence is high; surprises are higher.
❌ Myth: "DMA is enough — we don't need SQL Assessment." ✅ Reality: DMA was retired on July 16, 2025. SQL assessment now runs through Azure Migrate or Azure Arc for SQL Server, at estate scale. Why it's tricky: DMA is still all over older study material; the supported, at-scale path is Azure Migrate.
Practice Exercises
🟢 Exercise 1. A team has 400 VMs on VMware. Recommend a discovery approach.
▶💡 Hint
Appliance + agentless.
▶✅ Solution
Deploy the Azure Migrate appliance OVA in the vCenter. Configure vCenter credentials. Enable agentless dependency mapping for 30 days. Collect performance counters for at least 14 days before running the assessment.
🟡 Exercise 2. A migration sponsor wants to know Azure cost for the estate. Which output do they want?
▶💡 Hint
TCO report.
▶✅ Solution
The Azure Migrate assessment includes a TCO output that estimates monthly Azure cost per workload (configurable for Pay-as-you-go, 1-year or 3-year Reserved Instance pricing, AHB, and storage class). The sponsor reviews and signs off on the business case before migration proceeds.
🟡 Exercise 3. A SQL Server 2008 instance fails the Azure SQL DB compatibility check (uses cross-database transactions). Recommend.
▶💡 Hint
MI supports cross-database.
▶✅ Solution
Target Azure SQL Managed Instance instead of single DBs. MI supports cross-database transactions, SQL Agent, CLR — features that single Azure SQL DB lacks. Re-run the Azure Migrate SQL Assessment against MI to confirm no further blockers. Alternative: stay on SQL Server on Azure VMs if MI compatibility issues remain.
🔴 Exercise 4. A team plans to migrate 50 VMs but their dependency mapping ran only 48 hours. Diagnose.
▶💡 Hint
48 hours misses weekly / monthly cycles.
▶✅ Solution
48 hours captures daily patterns but misses weekly batch jobs, monthly reports, quarterly closes. Extend the mapping window to at least 14 days, preferably 30 days, before finalising the migration plan. Critical workloads with quarterly cycles may need a longer window or business-stakeholder review to flag known periodic processes.
🔴 Exercise 5. An Oracle database has 200 GB and complex PL/SQL. Recommend an assessment.
▶💡 Hint
SSMA + conversion-cost estimate.
▶✅ Solution
Run SSMA for Oracle to assess schema and PL/SQL conversion complexity. The output classifies objects: convertible, convertible-with-fixes, manual-conversion-required. If conversion cost is acceptable, target Azure SQL MI. If too high, plan to lift-and-shift to Oracle on Azure VMs (BYOL licensing) and revisit conversion later.
🟢 Exercise 6. True or false: agentless dependency mapping is available in Hyper-V environments.
▶💡 Hint
Check the current agentless support matrix on Microsoft Learn.
▶✅ Solution
True. Agentless dependency analysis is generally available for VMware VMs, Hyper-V VMs, physical servers, and servers running in other public clouds such as AWS and GCP, and it is the recommended approach for dependency visualization and analysis. Agent-based analysis is the one carrying the caveat now: it is supported only in the classic view, which is scheduled for deprecation by the end of 2026, and no new servers can be onboarded to it. Always confirm against the current Microsoft Learn matrix.
🟡 Exercise 7. Design a 14-day assessment plan for 200 VMs in VMware with 50 SQL Servers.
▶💡 Hint
Appliance + Server Assessment + SQL Assessment.
▶✅ Solution
Day 1: deploy Azure Migrate appliance, connect to vCenter, start discovery. Days : collect performance counters; enable agentless dependency mapping. Day 7: confirm the appliance has discovered every SQL instance and enable SQL Assessment (or run the assessment through Azure Arc for SQL Server on Arc-enabled instances). Day 14: run Server Assessment (performance-based sizing, 14-day window, 30% comfort factor); run SQL Assessment; review readiness categories; produce TCO; deliver the migration plan to the sponsor.
Summary & Concept Map
Azure Migrateis the canonical assessment tool. Appliance discovers; Server / SQL / Web App / Database assessments produce readiness reports.- SQL assessment runs through Azure Migrate or Azure Arc for SQL Server (DMA retired July 16, 2025); SSMA migrates non-Microsoft databases to Azure SQL.
- Dependency mapping is essential. Agentless is GA for VMware, Hyper-V, physical and AWS/GCP servers and is the recommended mode; agent-based is classic-view legacy, deprecating by the end of 2026.
- Performance-based sizing beats as-on-prem in most cases. Use a 14-to-31-day window.
- Readiness categories drive the wave plan. Ready first, Conditionally Ready in parallel, Not Ready rebuilt or retired.
- Spreadsheet inventories are not enough. They drift; Azure Migrate is current.