{"id":443,"date":"2026-04-14T01:59:13","date_gmt":"2026-04-14T01:59:13","guid":{"rendered":"https:\/\/www.devopsschool.com\/tutorials\/azure-migrate-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-hybrid-multicloud\/"},"modified":"2026-04-14T01:59:13","modified_gmt":"2026-04-14T01:59:13","slug":"azure-migrate-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-hybrid-multicloud","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/tutorials\/azure-migrate-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-hybrid-multicloud\/","title":{"rendered":"Azure Migrate Tutorial: Architecture, Pricing, Use Cases, and Hands-On Guide for Hybrid + Multicloud"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Category<\/h2>\n\n\n\n<p>Hybrid + Multicloud<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Introduction<\/h2>\n\n\n\n<p>Azure Migrate is Microsoft Azure\u2019s primary migration hub for discovering workloads, assessing readiness and cost, and moving servers, databases, and applications from on-premises and other clouds into Azure.<\/p>\n\n\n\n<p>In simple terms: Azure Migrate helps you <strong>inventory what you have<\/strong>, <strong>estimate what it will cost and how it should be sized in Azure<\/strong>, and then <strong>migrate with a guided, trackable workflow<\/strong>\u2014all from one place in the Azure portal.<\/p>\n\n\n\n<p>Technically, Azure Migrate is a <strong>project-based orchestration layer<\/strong> that connects to your environments (VMware vSphere, Hyper\u2011V, physical servers, and selected public cloud sources depending on tool support) using an <strong>Azure Migrate appliance<\/strong> and\/or agents, collects metadata and performance data, runs <strong>assessments<\/strong> (sizing, compatibility, dependencies, and cost estimation), and then hands off execution to migration engines such as <strong>Azure Site Recovery (for server replication\/migration)<\/strong> and database migration tooling (commonly <strong>Azure Database Migration Service<\/strong>, depending on scenario).<\/p>\n\n\n\n<p>The problem it solves: migrations fail when teams don\u2019t know what they have, don\u2019t understand dependencies, underestimate costs, and lack repeatable cutover processes. Azure Migrate reduces that risk by providing a structured path from <strong>discovery \u2192 assessment \u2192 migration \u2192 tracking<\/strong>, which is especially valuable for <strong>Hybrid + Multicloud<\/strong> strategies.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. What is Azure Migrate?<\/h2>\n\n\n\n<p><strong>Official purpose:<\/strong> Azure Migrate is an Azure service designed to help you <strong>discover, assess, and migrate<\/strong> workloads to Azure. It provides a centralized experience in the Azure portal to plan and execute migrations using Microsoft and partner tools.<\/p>\n\n\n\n<p><strong>Core capabilities (high level):<\/strong>\n&#8211; <strong>Discovery and inventory<\/strong> of servers and applications (tooling varies by source platform).\n&#8211; <strong>Assessment<\/strong> for Azure readiness, sizing recommendations, and cost estimation.\n&#8211; <strong>Dependency analysis<\/strong> (where supported) to understand application communication patterns and group migrations.\n&#8211; <strong>Migration execution tracking<\/strong> through an Azure Migrate project, integrating with migration engines (for example, server migration using Azure Site Recovery-based replication).<\/p>\n\n\n\n<p><strong>Major components:<\/strong>\n&#8211; <strong>Azure Migrate project<\/strong>: The logical container in Azure where you manage discovery, assessment, and migration activities.\n&#8211; <strong>Azure Migrate appliance<\/strong>: A lightweight VM\/software appliance deployed in your source environment to collect inventory and (optionally) performance\/dependency data and send it to Azure securely.\n&#8211; <strong>Tools within Azure Migrate<\/strong> (availability depends on scenario and current Azure portal options):\n  &#8211; <strong>Discovery and assessment<\/strong> tooling for server inventory and right-sizing.\n  &#8211; <strong>Server migration<\/strong> tooling (commonly implemented via Azure Site Recovery replication technology for supported sources).\n  &#8211; <strong>Database migration integration<\/strong> (commonly via Azure Database Migration Service and Azure Data Studio extensions, depending on workload).\n  &#8211; <strong>Web\/app migration tooling and guidance<\/strong> (often via dedicated assistants and product-specific paths).\n  &#8211; <strong>Partner tools<\/strong> that plug into the Azure Migrate project for specialized discovery\/migration needs.<\/p>\n\n\n\n<p><strong>Service type:<\/strong> Primarily a <strong>management\/orchestration service<\/strong> (control plane) plus <strong>appliance-based data collection<\/strong> (data plane). Migration execution typically relies on other Azure services.<\/p>\n\n\n\n<p><strong>Scope (how it\u2019s organized in Azure):<\/strong>\n&#8211; Azure Migrate is managed through an <strong>Azure Migrate project<\/strong> that you create in a <strong>subscription<\/strong> and <strong>resource group<\/strong>.\n&#8211; The project is associated with an <strong>Azure region<\/strong> for storing project metadata. The relationship between project region and target region can vary by tool and scenario\u2014<strong>verify in official docs<\/strong> for any strict coupling in your chosen workflow.\n&#8211; Access is governed through <strong>Azure RBAC<\/strong> on the subscription\/resource group\/project resources.<\/p>\n\n\n\n<p><strong>How it fits into the Azure ecosystem:<\/strong>\n&#8211; Azure Migrate is the front door for migration planning and tracking.\n&#8211; It commonly integrates with:\n  &#8211; <strong>Azure Site Recovery<\/strong> (replication engine for server migrations in many scenarios).\n  &#8211; <strong>Azure Storage<\/strong> (replication storage, logs, and staging\u2014depending on tool).\n  &#8211; <strong>Azure Virtual Network<\/strong> (target networking for migrated workloads).\n  &#8211; <strong>Azure Monitor \/ Log Analytics<\/strong> (monitoring and logging for dependent services; specifics vary).\n  &#8211; <strong>Azure Database Migration Service<\/strong> and database tooling for database moves (service choice depends on database type and target).<\/p>\n\n\n\n<p>If you previously used older, standalone migration utilities, Azure Migrate is the modern consolidated hub. Some legacy migration tools still exist for niche scenarios, but Azure Migrate is the primary supported umbrella experience. If you encounter a workflow that looks different from this guide, follow the most recent Microsoft Learn documentation for your exact source\/target combination.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Why use Azure Migrate?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Business reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lower migration risk<\/strong> through structured discovery and assessments before cutover.<\/li>\n<li><strong>Better budgeting<\/strong> with cost estimation and right-sizing recommendations.<\/li>\n<li><strong>Faster time-to-cloud<\/strong> by standardizing migration steps across teams.<\/li>\n<li><strong>Portfolio visibility<\/strong> for leadership: progress tracking, wave planning, and reporting.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Technical reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Works across common virtualization stacks<\/strong> (notably VMware and Hyper\u2011V) and physical servers via supported tooling.<\/li>\n<li><strong>Assessment-driven sizing<\/strong> (CPU\/memory\/storage\/network) and Azure SKU recommendations (depending on collected performance data).<\/li>\n<li><strong>Dependency awareness<\/strong> helps prevent broken applications after migration.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operational reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Centralized view for:<\/li>\n<li>Discovered inventory<\/li>\n<li>Assessments<\/li>\n<li>Migration status<\/li>\n<li>Repeatable approach for migration waves (factory model), especially important in enterprises.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/compliance reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Uses Azure identity and access controls (Azure RBAC).<\/li>\n<li>Appliance-to-Azure communication is designed to be <strong>outbound<\/strong> over HTTPS in typical deployments (no inbound from Azure required to your datacenter in many cases), reducing exposure.<\/li>\n<li>Helps plan landing zones and governance by exposing what needs migrating (OS versions, unsupported software, etc.).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Scalability\/performance reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Scales to large estates using multiple appliances and wave planning.<\/li>\n<li>Supports performance-based sizing when performance data collection is enabled and supported.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should choose Azure Migrate<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You are migrating <strong>VMware\/Hyper\u2011V\/physical<\/strong> server estates to Azure IaaS.<\/li>\n<li>You need <strong>inventory + right-sizing + cost estimation<\/strong> before moving.<\/li>\n<li>You want a consistent migration hub for a <strong>Hybrid + Multicloud<\/strong> program (including migrations from other clouds where supported tools apply).<\/li>\n<li>You need a governance-friendly way to track migrations across many apps and teams.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should not choose Azure Migrate<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You are not migrating to Azure (Azure Migrate is Azure-centric).<\/li>\n<li>You only need a <strong>backup\/DR<\/strong> solution (use Azure Site Recovery directly for DR scenarios).<\/li>\n<li>Your migration is purely application-level refactoring (for example, rewriting to cloud-native microservices) where VM lift-and-shift assessments add little value\u2014though Azure Migrate can still help with initial discovery.<\/li>\n<li>Your environment is heavily constrained such that deploying an appliance\/collectors is not feasible; in such cases consider alternative inventory approaches (for example, CMDB exports) and validate what Azure Migrate supports for \u201cimport-based\u201d workflows (if any) in current docs.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">4. Where is Azure Migrate used?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Industries<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Financial services (regulated migrations, data center exits)<\/li>\n<li>Healthcare (legacy OS and application dependency mapping)<\/li>\n<li>Retail and e-commerce (seasonal scaling, modernization roadmaps)<\/li>\n<li>Manufacturing (OT\/IT segmentation\u2014careful networking and phased moves)<\/li>\n<li>Government\/public sector (compliance and sovereignty requirements)<\/li>\n<li>SaaS and ISVs (standardized migration factories during expansion\/mergers)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Team types<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cloud Center of Excellence (CCoE)<\/li>\n<li>Platform engineering teams building Azure landing zones<\/li>\n<li>Infrastructure teams handling VMware\/Hyper\u2011V<\/li>\n<li>Database teams planning PaaS adoption<\/li>\n<li>Security and compliance teams validating controls<\/li>\n<li>DevOps\/SRE teams planning observability and reliability after migration<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Workloads<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Windows and Linux servers (web, app, middleware)<\/li>\n<li>VMware and Hyper\u2011V VM fleets<\/li>\n<li>File\/print, identity adjunct workloads (with caution)<\/li>\n<li>Packaged enterprise apps (where lift-and-shift is a first step)<\/li>\n<li>Databases (SQL Server, open-source engines\u2014workflow depends on target service)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Architectures<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data center exit (bulk VM migration)<\/li>\n<li>Hybrid steady state (some workloads remain on-prem; others migrate)<\/li>\n<li>Mergers\/acquisitions (rapid inventory + wave plans)<\/li>\n<li>Multicloud consolidation (selected workloads moving from another cloud into Azure\u2014tool support varies by source)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Real-world deployment contexts<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dedicated migration subscriptions vs shared enterprise subscriptions<\/li>\n<li>Hub-and-spoke networks with centralized security controls<\/li>\n<li>Landing zones with policy-driven governance (Azure Policy, tagging standards)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Production vs dev\/test usage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dev\/test<\/strong>: Ideal to learn assessments, validate tooling, rehearse cutovers.<\/li>\n<li><strong>Production<\/strong>: Common for large-scale moves; requires governance, change control, and careful network and identity planning.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">5. Top Use Cases and Scenarios<\/h2>\n\n\n\n<p>Below are realistic scenarios where Azure Migrate is commonly used. Each includes the problem, why Azure Migrate fits, and a short example.<\/p>\n\n\n\n<p>1) <strong>VMware estate discovery and right-sizing<\/strong>\n&#8211; <strong>Problem:<\/strong> Thousands of VMs with unknown utilization and sprawl.\n&#8211; <strong>Why Azure Migrate fits:<\/strong> Appliance-based discovery + performance-based assessments produce sizing and cost estimates.\n&#8211; <strong>Example:<\/strong> A retail company inventories 2,500 vSphere VMs, groups them by app, and right-sizes to reduce Azure spend.<\/p>\n\n\n\n<p>2) <strong>Hyper\u2011V to Azure IaaS migration planning<\/strong>\n&#8211; <strong>Problem:<\/strong> Hyper\u2011V clusters nearing hardware refresh; need cloud plan fast.\n&#8211; <strong>Why it fits:<\/strong> Hyper\u2011V discovery through Azure Migrate appliance and structured assessment reports.\n&#8211; <strong>Example:<\/strong> A university assesses 200 Hyper\u2011V VMs and identifies which can move to smaller SKUs.<\/p>\n\n\n\n<p>3) <strong>Physical server migration roadmap<\/strong>\n&#8211; <strong>Problem:<\/strong> Legacy physical servers without virtualization metadata.\n&#8211; <strong>Why it fits:<\/strong> Supported tooling can discover physical servers (often via agents\/collectors), enabling inventory and assessment.\n&#8211; <strong>Example:<\/strong> A factory migrates line-of-business apps running on physical Windows servers to Azure VMs.<\/p>\n\n\n\n<p>4) <strong>Application dependency mapping for migration waves<\/strong>\n&#8211; <strong>Problem:<\/strong> Migrating a VM breaks apps due to hidden dependencies.\n&#8211; <strong>Why it fits:<\/strong> Dependency insights (where supported and enabled) help identify communication patterns and grouping.\n&#8211; <strong>Example:<\/strong> A healthcare provider discovers that an app server talks to an on-prem licensing server and schedules them together.<\/p>\n\n\n\n<p>5) <strong>Cost estimation for leadership approval<\/strong>\n&#8211; <strong>Problem:<\/strong> CFO requires defensible monthly run-rate and one-time migration costs.\n&#8211; <strong>Why it fits:<\/strong> Assessments produce cost estimates; combined with landing zone and target SKUs, this becomes budget input.\n&#8211; <strong>Example:<\/strong> A fintech produces a forecast by environment (prod\/non-prod) using performance-based sizing.<\/p>\n\n\n\n<p>6) <strong>Data center exit with phased cutovers<\/strong>\n&#8211; <strong>Problem:<\/strong> Contract ends in 9 months; must move in waves with minimal downtime.\n&#8211; <strong>Why it fits:<\/strong> Central tracking of waves, readiness, and progress; integrates with replication-based migrations.\n&#8211; <strong>Example:<\/strong> A media company migrates 500 servers, using test migrations and scheduled cutovers.<\/p>\n\n\n\n<p>7) <strong>M&amp;A rapid inventory and consolidation<\/strong>\n&#8211; <strong>Problem:<\/strong> Newly acquired company has unknown infrastructure.\n&#8211; <strong>Why it fits:<\/strong> Fast discovery and assessment to quantify estate and plan consolidation.\n&#8211; <strong>Example:<\/strong> A manufacturing group inventories the acquired company\u2019s VMware environment in 2 weeks.<\/p>\n\n\n\n<p>8) <strong>Regulated workload migration planning<\/strong>\n&#8211; <strong>Problem:<\/strong> Must demonstrate control mapping and security posture.\n&#8211; <strong>Why it fits:<\/strong> While Azure Migrate isn\u2019t a compliance tool, it supports controlled planning and integrates with Azure governance patterns.\n&#8211; <strong>Example:<\/strong> A government agency uses assessments to identify unsupported OS versions that must be remediated before migration.<\/p>\n\n\n\n<p>9) <strong>Hybrid steady-state optimization<\/strong>\n&#8211; <strong>Problem:<\/strong> Not everything will migrate; need to decide what stays, what moves, what modernizes.\n&#8211; <strong>Why it fits:<\/strong> Inventory supports segmentation decisions and a Hybrid + Multicloud roadmap.\n&#8211; <strong>Example:<\/strong> An enterprise decides to migrate customer-facing apps but keep ERP on-prem for latency reasons.<\/p>\n\n\n\n<p>10) <strong>Pre-migration cleanup and standardization<\/strong>\n&#8211; <strong>Problem:<\/strong> Too many abandoned VMs and oversized instances.\n&#8211; <strong>Why it fits:<\/strong> Discovery reveals powered-off VMs, low utilization, and candidates for retirement.\n&#8211; <strong>Example:<\/strong> A SaaS company decommissions 15% of VMs before migration, lowering total project scope.<\/p>\n\n\n\n<p>11) <strong>Azure landing zone validation using real workload requirements<\/strong>\n&#8211; <strong>Problem:<\/strong> Platform team built a landing zone but doesn\u2019t know real workload network\/DNS needs.\n&#8211; <strong>Why it fits:<\/strong> Dependency and inventory data informs network, firewall, and DNS planning.\n&#8211; <strong>Example:<\/strong> Dependency mapping reveals east-west flows requiring hub firewall rules.<\/p>\n\n\n\n<p>12) <strong>Multicloud migration intake for selective workloads<\/strong>\n&#8211; <strong>Problem:<\/strong> A subset of workloads must move from another cloud into Azure due to contracts or platform standardization.\n&#8211; <strong>Why it fits:<\/strong> Azure Migrate can serve as a tracking hub; actual migration mechanics depend on supported tools for the source.\n&#8211; <strong>Example:<\/strong> A company moving Windows workloads into Azure uses Azure Migrate for assessment and executes the move with appropriate supported tooling. (Validate source support in official docs.)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Core Features<\/h2>\n\n\n\n<p>Azure Migrate evolves; the exact tools visible in the portal can vary by region and scenario. The features below reflect the major, commonly documented capabilities\u2014verify current availability for your workload type in Microsoft Learn.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Azure Migrate project (centralized hub)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Provides a single place in the Azure portal to add tools, register appliances, view discovered inventory, run assessments, and track migrations.<\/li>\n<li><strong>Why it matters:<\/strong> Prevents fragmented spreadsheets and inconsistent processes across teams.<\/li>\n<li><strong>Practical benefit:<\/strong> Consistent workflow for migration factories and governance reporting.<\/li>\n<li><strong>Caveats:<\/strong> Project metadata is stored in a chosen region; check any region constraints for your target scenario.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2) Appliance-based discovery (VMware\/Hyper\u2011V commonly)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Deploy an appliance in your environment to discover servers\/VMs and collect configuration data.<\/li>\n<li><strong>Why it matters:<\/strong> Accurate inventory is foundational for planning.<\/li>\n<li><strong>Practical benefit:<\/strong> Automated discovery reduces manual errors vs CMDB-only approaches.<\/li>\n<li><strong>Caveats:<\/strong> Requires network access from the appliance to source management endpoints (vCenter\/hosts\/Hyper\u2011V) and outbound access to Azure.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3) Performance-based discovery (optional where supported)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Collects performance metrics (CPU, memory, disk, network) over time for right-sizing.<\/li>\n<li><strong>Why it matters:<\/strong> Static sizing often overestimates, increasing cost.<\/li>\n<li><strong>Practical benefit:<\/strong> Better SKU selection, reserved instance planning inputs, and capacity forecasting.<\/li>\n<li><strong>Caveats:<\/strong> Requires a data collection window; short windows can misrepresent seasonal workloads.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4) Assessments (readiness, sizing, cost estimation)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Generates reports for:<\/li>\n<li>Azure readiness (compatibility checks)<\/li>\n<li>Recommended VM size\/series<\/li>\n<li>Estimated Azure costs (compute, storage\u2014depending on inputs)<\/li>\n<li><strong>Why it matters:<\/strong> Turns raw inventory into actionable planning.<\/li>\n<li><strong>Practical benefit:<\/strong> Enables wave planning, budgeting, and risk management.<\/li>\n<li><strong>Caveats:<\/strong> Assessments are estimates; always validate with pilot migrations and performance tests.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5) Dependency analysis \/ visualization (where supported)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Helps identify server-to-server connections and application dependencies.<\/li>\n<li><strong>Why it matters:<\/strong> Reduces outage risk during cutovers.<\/li>\n<li><strong>Practical benefit:<\/strong> Better grouping into migration waves; identifies shared services (DNS, licensing, databases).<\/li>\n<li><strong>Caveats:<\/strong> Requires additional configuration\/agents in some approaches and may not capture every dependency (for example, hard-coded external endpoints).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6) Server migration tooling (integration-based)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Supports migrating servers\/VMs to Azure, commonly using replication-based methods aligned with Azure Site Recovery technology.<\/li>\n<li><strong>Why it matters:<\/strong> Provides repeatable test migration and cutover workflows.<\/li>\n<li><strong>Practical benefit:<\/strong> Enables minimal-downtime migrations for many workloads.<\/li>\n<li><strong>Caveats:<\/strong> Ongoing replication and storage usage can incur costs; validate supported OS\/disks\/boot types and source platform compatibility.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7) Migration progress tracking and reporting<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Tracks discovered items, assessments, and migration status within the project.<\/li>\n<li><strong>Why it matters:<\/strong> Enables program management visibility.<\/li>\n<li><strong>Practical benefit:<\/strong> Helps enforce wave gates (discover \u2192 assess \u2192 remediate \u2192 migrate).<\/li>\n<li><strong>Caveats:<\/strong> Deep operational telemetry for replication is often in the underlying service (for example, Azure Site Recovery views).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">8) Partner tool integration<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Allows adding partner migration tools into the Azure Migrate experience.<\/li>\n<li><strong>Why it matters:<\/strong> Some workloads require specialized tooling (for example, certain databases, mainframes, or complex app stacks).<\/li>\n<li><strong>Practical benefit:<\/strong> Extends coverage beyond native tooling.<\/li>\n<li><strong>Caveats:<\/strong> Partner tools have their own licensing, support, and data handling\u2014review carefully.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">9) Security and access control via Azure RBAC<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Uses Azure role assignments to control who can create projects, register appliances, view discovered data, and initiate migrations.<\/li>\n<li><strong>Why it matters:<\/strong> Migration involves privileged operations and sensitive inventory data.<\/li>\n<li><strong>Practical benefit:<\/strong> Separation of duties (assessment team vs migration operators).<\/li>\n<li><strong>Caveats:<\/strong> Ensure least privilege; avoid broad Owner assignments.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">10) Integration with landing zone and governance patterns<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Azure Migrate doesn\u2019t enforce landing zones, but it supports aligning migration planning with:<\/li>\n<li>subscriptions and management groups<\/li>\n<li>networking (hub\/spoke)<\/li>\n<li>identity (Entra ID \/ AD)<\/li>\n<li>policy and tagging<\/li>\n<li><strong>Why it matters:<\/strong> Poor governance causes post-migration sprawl.<\/li>\n<li><strong>Practical benefit:<\/strong> Cleaner operational handover after cutover.<\/li>\n<li><strong>Caveats:<\/strong> Governance must be designed separately (Azure Policy, management groups, etc.).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">7. Architecture and How It Works<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">High-level architecture<\/h3>\n\n\n\n<p>Azure Migrate uses a <strong>hub-and-spoke model<\/strong> for migration operations:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Control plane (Azure):<\/strong><\/li>\n<li>Azure Migrate project (metadata, orchestration UI)<\/li>\n<li>Integrated tools (assessment, migration tracking)<\/li>\n<li>Underlying migration engines (often Azure Site Recovery for server replication)<\/li>\n<li><strong>Data plane (your environment):<\/strong><\/li>\n<li>Azure Migrate appliance (discovery\/assessment data collection)<\/li>\n<li>Optional agents\/collectors depending on scenario<\/li>\n<li>Access to virtualization managers (vCenter\/Hyper\u2011V) and servers<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Request\/data\/control flow (typical)<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>You create an <strong>Azure Migrate project<\/strong> in the Azure portal.<\/li>\n<li>You deploy an <strong>Azure Migrate appliance<\/strong> in the source environment.<\/li>\n<li>The appliance authenticates to Azure (registration) and establishes <strong>outbound<\/strong> secure communication.<\/li>\n<li>The appliance discovers servers\/VMs and sends metadata\/performance data to the project.<\/li>\n<li>You run <strong>assessments<\/strong> in Azure using collected data and configure target assumptions (region, pricing offers, reserved instances, etc.).<\/li>\n<li>If migrating servers, you enable migration tooling, which then orchestrates replication\/cutover using the underlying engine (commonly Azure Site Recovery-based replication for supported sources).<\/li>\n<li>You track progress and validate workloads in Azure post-migration.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Integrations with related services (common)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Azure Site Recovery<\/strong>: replication engine for many server migration scenarios.<\/li>\n<li><strong>Azure Storage<\/strong>: replication and staging (varies by workflow).<\/li>\n<li><strong>Azure Virtual Network<\/strong>: target subnets, routing, DNS integration.<\/li>\n<li><strong>Azure Monitor \/ Log Analytics<\/strong>: monitoring and logs for underlying services where enabled.<\/li>\n<li><strong>Azure Policy<\/strong>: governance of target resources (naming, tagging, allowed SKUs\/regions).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Dependency services<\/h3>\n\n\n\n<p>At minimum, you need:\n&#8211; Azure subscription + permissions\n&#8211; A target region for project metadata\n&#8211; Networking connectivity for appliance outbound to Azure and inbound to source management endpoints<\/p>\n\n\n\n<p>For server migration execution, you typically need:\n&#8211; Target resource group(s)\n&#8211; Target VNet\/subnets\n&#8211; Supporting migration resources created by the tool (varies by scenario)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/authentication model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>User access<\/strong>: Azure RBAC controls project access.<\/li>\n<li><strong>Appliance registration<\/strong>: appliance registers to the Azure Migrate project using a secure registration flow (commonly interactive sign-in\/device code experience in the appliance configuration manager).<\/li>\n<li><strong>Data in transit<\/strong>: typically HTTPS\/TLS outbound to Azure endpoints.<\/li>\n<li><strong>Data at rest<\/strong>: stored in Azure under Microsoft-managed controls; confirm specifics for your region\/compliance in official docs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Networking model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Appliance typically requires:<\/li>\n<li>Access to vCenter\/Hyper\u2011V hosts (internal)<\/li>\n<li>Outbound HTTPS to Azure service endpoints (internet) or via controlled egress (proxy\/NAT)<\/li>\n<li>For migration execution, additional networking is required between source and Azure depending on the replication technology used.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Monitoring\/logging\/governance considerations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use Azure Migrate project views for high-level status.<\/li>\n<li>For replication\/migration runtime details, consult the underlying service dashboards (for example, Site Recovery views where applicable).<\/li>\n<li>Enforce tags and naming conventions on target resources using Azure Policy.<\/li>\n<li>Centralize logs via Log Analytics where appropriate (cost implications apply).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Simple architecture diagram (Mermaid)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart LR\n  subgraph OnPrem[\"On-prem \/ Source environment\"]\n    VC[\"vCenter \/ Hyper-V host(s)\"]\n    APPL[\"Azure Migrate appliance\"]\n    VC --&gt; APPL\n  end\n\n  subgraph Azure[\"Azure\"]\n    PROJ[\"Azure Migrate project\"]\n    ASSESS[\"Assessments &amp; reports\"]\n  end\n\n  APPL -- \"Outbound HTTPS (TLS)\" --&gt; PROJ\n  PROJ --&gt; ASSESS\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Production-style architecture diagram (Mermaid)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart TB\n  subgraph Source[\"Source (Datacenter \/ Other Cloud)\"]\n    direction TB\n    vcenter[\"vCenter \/ Hyper-V Manager\"]\n    hosts[\"VM hosts \/ Clusters\"]\n    applA[\"Azure Migrate appliance A\"]\n    applB[\"Azure Migrate appliance B (scale\/segmentation)\"]\n    vcenter --- hosts\n    vcenter --&gt; applA\n    vcenter --&gt; applB\n  end\n\n  subgraph Egress[\"Egress &amp; Security Controls\"]\n    direction TB\n    proxy[\"Proxy \/ NAT \/ Firewall egress allowlist\"]\n    dns[\"DNS + NTP\"]\n  end\n\n  subgraph AzureLandingZone[\"Azure Landing Zone (Target)\"]\n    direction TB\n    mgmt[\"Management Groups + Azure Policy\"]\n    sub[\"Subscriptions (Prod\/Non-Prod\/Migration)\"]\n    net[\"Hub-Spoke VNets + Firewall\"]\n    id[\"Entra ID + AD DS integration (as needed)\"]\n    mon[\"Azure Monitor \/ Log Analytics (optional)\"]\n  end\n\n  subgraph AzureMigrate[\"Azure Migrate (Control Plane)\"]\n    project[\"Azure Migrate project\"]\n    inventory[\"Discovered inventory\"]\n    assess[\"Assessments (sizing\/cost\/readiness)\"]\n    tracking[\"Migration tracking\"]\n  end\n\n  subgraph MigrationEngines[\"Migration Engines (Scenario-dependent)\"]\n    asr[\"Azure Site Recovery-based replication (server migration)\"]\n    dms[\"Database migration tooling (e.g., Azure DMS, ADS extensions)\"]\n  end\n\n  applA --&gt; proxy\n  applB --&gt; proxy\n  proxy --&gt; project\n  dns -. \"Time\/DNS correctness\" .-&gt; applA\n  dns -.-&gt; applB\n\n  project --&gt; inventory\n  inventory --&gt; assess\n  project --&gt; tracking\n\n  tracking --&gt; asr\n  tracking --&gt; dms\n\n  asr --&gt; AzureLandingZone\n  dms --&gt; AzureLandingZone\n  mgmt --&gt; sub\n  sub --&gt; net\n  sub --&gt; id\n  sub --&gt; mon\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8. Prerequisites<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Account\/subscription\/project requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An <strong>Azure subscription<\/strong> where you can create:<\/li>\n<li>Resource groups<\/li>\n<li>Azure Migrate project resources<\/li>\n<li>(Optionally) migration target resources (VNets, VMs, storage) if you proceed beyond assessment<\/li>\n<li>Ability to select a <strong>region<\/strong> for the Azure Migrate project metadata.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Permissions \/ IAM roles<\/h3>\n\n\n\n<p>Minimum typical requirements (exact roles can vary by scenario; verify in official docs):\n&#8211; To create a project and manage tools: <strong>Contributor<\/strong> on the resource group (or subscription).\n&#8211; To assign permissions and manage access: <strong>Owner<\/strong> or <strong>User Access Administrator<\/strong> (only if you need to grant roles).\n&#8211; To perform migrations: permissions to create and manage target resources (VMs, networking, storage) in the target subscription\/resource group.<\/p>\n\n\n\n<p>Use least privilege and separate duties:\n&#8211; Assessment team: read + assess\n&#8211; Migration operators: replication\/cutover permissions\n&#8211; Security\/governance team: policy\/network controls<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Billing requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure Migrate project creation and assessments are commonly <strong>no additional charge<\/strong> for the Azure Migrate service itself, but you must have an active subscription.<\/li>\n<li>If you execute migrations (replication, test migrations, cutover), you may incur costs in underlying services (for example, replication storage, compute, data transfer).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">CLI\/SDK\/tools needed<\/h3>\n\n\n\n<p>For this tutorial:\n&#8211; Azure portal access\n&#8211; Optional: <strong>Azure CLI<\/strong> (useful for creating resource groups and cleanup)\n  &#8211; Install: https:\/\/learn.microsoft.com\/cli\/azure\/install-azure-cli\n&#8211; A virtualization environment for hands-on discovery (Hyper\u2011V or VMware) or physical servers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Region availability<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure Migrate is broadly available, but:<\/li>\n<li>Some tools or experiences may vary by region.<\/li>\n<li>Data residency requirements may constrain project region choices.<\/li>\n<li>Always confirm region support in Microsoft Learn for your tool (assessment\/migration type).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Quotas\/limits<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Limits exist for:<\/li>\n<li>Number of discovered servers per appliance\/project<\/li>\n<li>Assessment sizing scope<\/li>\n<li>Replication limits (if using replication-based migration)<\/li>\n<li>These limits can change\u2014<strong>verify in official docs<\/strong> for the latest numbers and scaling guidance.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisite services (common)<\/h3>\n\n\n\n<p>Depending on scenario:\n&#8211; For server migration execution: Azure services used by the migration engine (often Azure Site Recovery components and related resources).\n&#8211; For database migrations: database migration tooling such as Azure Database Migration Service (scenario-specific).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">9. Pricing \/ Cost<\/h2>\n\n\n\n<p>Azure Migrate pricing is best understood as:<\/p>\n\n\n\n<p>1) <strong>Azure Migrate (hub) cost<\/strong>\n&#8211; The Azure Migrate service\/hub and many assessment features are generally presented as <strong>no additional charge<\/strong>.\n&#8211; Official pricing page: https:\/\/azure.microsoft.com\/pricing\/details\/azure-migrate\/\n&#8211; Always confirm current terms and what\u2019s included for your region and scenario.<\/p>\n\n\n\n<p>2) <strong>Underlying services cost (where you spend money)<\/strong>\nIf you go beyond assessment into execution or supporting services, you may pay for:\n&#8211; <strong>Replication and migration runtime<\/strong> (commonly Azure Site Recovery pricing model when used as the engine for server migrations).\n&#8211; <strong>Storage<\/strong> used for replication\/staging.\n&#8211; <strong>Compute<\/strong> in Azure for test migrations and cutover VMs.\n&#8211; <strong>Networking<\/strong> (data transfer, VPN\/ExpressRoute, NAT gateways, firewalls).\n&#8211; <strong>Logging\/monitoring<\/strong> (Log Analytics ingestion\/retention if enabled).\n&#8211; <strong>Database migration services<\/strong> (if using a paid tier\/service).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pricing dimensions (what drives cost)<\/h3>\n\n\n\n<p>Because Azure Migrate acts as an orchestrator, cost drivers come from the services you enable:\n&#8211; <strong>Number of servers replicated<\/strong> (for replication-based migrations).\n&#8211; <strong>Data change rate<\/strong> on disks (impacts replication bandwidth\/storage churn).\n&#8211; <strong>Storage type and capacity<\/strong> used for replication and target disks.\n&#8211; <strong>Duration of replication<\/strong> (keeping replication running longer increases storage\/compute\/network usage).\n&#8211; <strong>Target VM sizes<\/strong> (compute cost) and whether you run them during tests.\n&#8211; <strong>Network egress\/ingress paths<\/strong> and any paid networking components.\n&#8211; <strong>Monitoring<\/strong>: Log ingestion and retention if you centralize logs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Free tier<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>There isn\u2019t a classic \u201cfree tier\u201d in the same sense as a metered compute service; rather, Azure Migrate\u2019s hub and assessment capabilities are often free, while execution uses paid services. Confirm current eligibility and terms on the official pricing page.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Hidden or indirect costs to plan for<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pilot\/test environments<\/strong>: test migrations can spin up VMs that run for hours\/days if not shut down.<\/li>\n<li><strong>IP addresses<\/strong> (public IPs), NAT gateways, firewall appliances.<\/li>\n<li><strong>Disk type upgrades<\/strong> (Premium SSD vs Standard) after performance testing.<\/li>\n<li><strong>Operational tools<\/strong>: backup (Azure Backup), security (Defender for Cloud), monitoring.<\/li>\n<li><strong>ExpressRoute<\/strong> circuit costs (if used) and partner cross-connect fees.<\/li>\n<li><strong>Human time<\/strong>: dependency remediation, OS upgrades, application testing.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Network\/data transfer implications<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data transfer into Azure is often not billed the same way as egress, but <strong>networking costs are nuanced<\/strong> and vary by service and direction. For accurate estimates:<\/li>\n<li>Use the Azure Pricing Calculator: https:\/\/azure.microsoft.com\/pricing\/calculator\/<\/li>\n<li>Review bandwidth needs for replication and choose VPN\/ExpressRoute accordingly.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">How to optimize cost<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Right-size using performance data<\/strong> (don\u2019t lift-and-shift oversized VMs).<\/li>\n<li><strong>Shorten replication windows<\/strong>: replicate close to cutover; avoid leaving replication running for months.<\/li>\n<li><strong>Group and prioritize<\/strong>: migrate high-cost\/low-value workloads last or retire them.<\/li>\n<li><strong>Choose appropriate disk types<\/strong>: start with cost-effective disks and adjust after validation.<\/li>\n<li><strong>Use reservations\/savings plans<\/strong> (post-migration) where appropriate.<\/li>\n<li><strong>Turn off test VMs<\/strong> immediately after validation.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Example low-cost starter estimate (assessment-only)<\/h3>\n\n\n\n<p>A minimal learning\/pilot setup can be very low cost if you:\n&#8211; Only create an Azure Migrate project\n&#8211; Run discovery\/assessment without executing migrations\nPotential costs:\n&#8211; Often <strong>$0 for Azure Migrate itself<\/strong>\n&#8211; Possibly small ancillary costs depending on enabled monitoring\/logging choices\nBecause this is region- and configuration-dependent, <strong>verify in official pricing<\/strong> before enabling extra services.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example production cost considerations<\/h3>\n\n\n\n<p>For production waves that include replication and cutover, budget for:\n&#8211; Replication service charges (if applicable in your chosen method)\n&#8211; Storage for replicated data\n&#8211; Azure compute for target VMs (test + production runtime)\n&#8211; Network connectivity (VPN\/ExpressRoute) and security controls\n&#8211; Monitoring + security services post-migration (Defender, Backup, Log Analytics)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">10. Step-by-Step Hands-On Tutorial<\/h2>\n\n\n\n<p>This lab focuses on a realistic, low-cost entry point: <strong>discover and assess<\/strong> a small Hyper\u2011V environment using Azure Migrate. It avoids running replication\/cutover to minimize spend and risk.<\/p>\n\n\n\n<blockquote>\n<p>If you are using VMware instead of Hyper\u2011V, the flow is similar (create project \u2192 deploy appliance \u2192 register \u2192 discover \u2192 assess), but appliance deployment steps differ. Use the same concepts and follow the VMware-specific instructions in Microsoft Learn.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Objective<\/h3>\n\n\n\n<p>Deploy Azure Migrate for <strong>Hyper\u2011V discovery<\/strong>, collect inventory, and generate a basic <strong>Azure readiness and sizing assessment<\/strong> for one or more VMs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lab Overview<\/h3>\n\n\n\n<p>You will:\n1. Create an Azure Migrate project in Azure.\n2. Download and deploy the Azure Migrate appliance for Hyper\u2011V in your local environment.\n3. Register the appliance with the Azure Migrate project.\n4. Configure discovery of Hyper\u2011V VMs.\n5. Create an assessment and review sizing\/cost outputs.\n6. Validate results and clean up Azure resources.<\/p>\n\n\n\n<p><strong>Expected outcome:<\/strong> You will see your discovered VMs in the Azure Migrate project and be able to generate an assessment report.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Prepare your Azure environment (resource group + access)<\/h3>\n\n\n\n<p>1) Sign in to the Azure portal: https:\/\/portal.azure.com<\/p>\n\n\n\n<p>2) Confirm you have a subscription and permissions:\n&#8211; You should have at least <strong>Contributor<\/strong> rights on a resource group you can use.<\/p>\n\n\n\n<p>3) (Optional) Create a dedicated resource group using Azure CLI:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az login\naz account show\naz group create --name rg-azure-migrate-lab --location eastus\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> A resource group exists for your Azure Migrate project and related resources.<\/p>\n\n\n\n<p><strong>Verification:<\/strong>\n&#8211; In the portal, search for <strong>Resource groups<\/strong> \u2192 confirm <code>rg-azure-migrate-lab<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Create an Azure Migrate project<\/h3>\n\n\n\n<p>1) In the Azure portal, search for <strong>Azure Migrate<\/strong> and open it.<\/p>\n\n\n\n<p>2) Create a project:\n&#8211; Select <strong>Servers, databases and web apps<\/strong> (wording can vary slightly).\n&#8211; Choose:\n  &#8211; Subscription\n  &#8211; Resource group: <code>rg-azure-migrate-lab<\/code>\n  &#8211; Project name: <code>amg-lab-project<\/code>\n  &#8211; Geography\/Region for project metadata (choose one appropriate for your organization)<\/p>\n\n\n\n<p>3) Create the project.<\/p>\n\n\n\n<p><strong>Expected outcome:<\/strong> The Azure Migrate project is created and you are taken to the project dashboard.<\/p>\n\n\n\n<p><strong>Verification:<\/strong>\n&#8211; In the project, you should see options to <strong>Discover<\/strong> and <strong>Assess<\/strong> (and possibly <strong>Migrate<\/strong>, depending on what tools are enabled).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Choose discovery source and generate appliance download instructions (Hyper\u2011V)<\/h3>\n\n\n\n<p>1) In your Azure Migrate project, go to the <strong>Discovery and assessment<\/strong> tool area (or similar).<\/p>\n\n\n\n<p>2) Select <strong>Discover<\/strong>.<\/p>\n\n\n\n<p>3) Choose the source type:\n&#8211; <strong>Hyper\u2011V<\/strong><\/p>\n\n\n\n<p>4) The portal will present:\n&#8211; Appliance download link\/package\n&#8211; Registration key\/steps\n&#8211; Required appliance VM configuration (CPU\/RAM\/disk) and prerequisites\n&#8211; Required outbound URLs\/endpoints and ports<\/p>\n\n\n\n<p>Follow the portal\u2019s Hyper\u2011V appliance instructions exactly, because appliance packaging and sizing guidance can change.<\/p>\n\n\n\n<p><strong>Expected outcome:<\/strong> You have the current appliance package\/instructions and a registration flow ready.<\/p>\n\n\n\n<p><strong>Verification:<\/strong>\n&#8211; You can download the appliance package from the portal and see a \u201cCopy project key \/ registration\u201d step.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Deploy the Azure Migrate appliance on Hyper\u2011V<\/h3>\n\n\n\n<p>On a machine with Hyper\u2011V available (Windows Server or Windows client with Hyper\u2011V enabled):<\/p>\n\n\n\n<p>1) Create a new VM for the appliance:\n&#8211; Use the <strong>exact configuration<\/strong> (vCPU\/RAM\/disk) shown in the Azure portal instructions for the Hyper\u2011V appliance.\n&#8211; Connect the VM to a virtual switch that can reach:\n  &#8211; Your Hyper\u2011V host(s) \/ environment\n  &#8211; The internet (or your controlled egress path\/proxy) for outbound HTTPS to Azure<\/p>\n\n\n\n<p>2) Mount\/attach the downloaded appliance image\/package as instructed by the Azure portal.<\/p>\n\n\n\n<p>3) Boot the appliance VM and complete initial setup (IP, DNS, time sync).\n&#8211; Ensure DNS and time are correct; authentication and registration often fail with incorrect time.<\/p>\n\n\n\n<p><strong>Expected outcome:<\/strong> The appliance VM is running and you can access its configuration UI (often via a local web UI URL shown in the appliance console).<\/p>\n\n\n\n<p><strong>Verification:<\/strong>\n&#8211; From a browser in the same network, open the appliance configuration manager URL displayed by the appliance VM.\n&#8211; Confirm you can sign in to the appliance UI.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Register the appliance with the Azure Migrate project<\/h3>\n\n\n\n<p>1) In the appliance configuration manager, choose <strong>Register<\/strong> (wording may vary).<\/p>\n\n\n\n<p>2) When prompted, sign in with an Azure account that has access to the Azure Migrate project.<\/p>\n\n\n\n<p>3) Provide the required project key\/registration details from the Azure portal step.<\/p>\n\n\n\n<p>4) Wait for registration to complete successfully.<\/p>\n\n\n\n<p><strong>Expected outcome:<\/strong> The appliance shows as registered\/connected to your Azure Migrate project.<\/p>\n\n\n\n<p><strong>Verification:<\/strong>\n&#8211; In Azure portal \u2192 Azure Migrate project \u2192 discovery sources\/appliances, confirm the appliance appears as <strong>connected<\/strong> (or similar status).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Configure Hyper\u2011V discovery<\/h3>\n\n\n\n<p>1) In the appliance UI, select <strong>Add discovery source<\/strong> or <strong>Start discovery<\/strong> for Hyper\u2011V.<\/p>\n\n\n\n<p>2) Provide Hyper\u2011V environment details:\n&#8211; Hyper\u2011V host or cluster information\n&#8211; Credentials with sufficient rights to enumerate VMs (use a least-privileged account that can list VM inventory)<\/p>\n\n\n\n<p>3) Start discovery.<\/p>\n\n\n\n<p>Discovery typically takes minutes to hours depending on environment size.<\/p>\n\n\n\n<p><strong>Expected outcome:<\/strong> The appliance begins collecting inventory data and uploading it to Azure.<\/p>\n\n\n\n<p><strong>Verification:<\/strong>\n&#8211; In the appliance UI, confirm discovery status is running\/completed.\n&#8211; In Azure portal \u2192 Azure Migrate project \u2192 Discovered servers, confirm VMs start appearing.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7: Create an assessment (readiness + sizing)<\/h3>\n\n\n\n<p>1) In Azure Migrate project, go to <strong>Assessments<\/strong>.<\/p>\n\n\n\n<p>2) Create a new assessment:\n&#8211; Choose assessment type relevant to server migration (for example, Azure VM assessment).\n&#8211; Select the discovered VMs (start with 1\u20135 for the lab).\n&#8211; Configure assessment properties (examples):\n  &#8211; Target region (where you plan to run the VM)\n  &#8211; Pricing offer (Pay-As-You-Go, etc.)\n  &#8211; Reserved instances\/savings options (optional)\n  &#8211; Sizing criteria (performance-based if you collected performance data; otherwise static)<\/p>\n\n\n\n<p>3) Create and run the assessment.<\/p>\n\n\n\n<p><strong>Expected outcome:<\/strong> Azure Migrate generates an assessment with:\n&#8211; Readiness flags (ready\/conditional\/not ready)\n&#8211; Recommended VM sizes\n&#8211; Cost estimates (compute and disks, depending on configuration)<\/p>\n\n\n\n<p><strong>Verification:<\/strong>\n&#8211; Open the assessment and review:\n  &#8211; Azure readiness summary\n  &#8211; Confidence ratings (if shown)\n  &#8211; Monthly cost estimate (varies by region and settings)\n  &#8211; Storage recommendations<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 8: Review results and plan next steps (migration wave thinking)<\/h3>\n\n\n\n<p>For each VM, note:\n&#8211; OS version and readiness warnings\n&#8211; Recommended size vs current allocation\n&#8211; Disk type recommendations\n&#8211; Dependencies (if your setup supports and you enabled dependency features)<\/p>\n\n\n\n<p><strong>Expected outcome:<\/strong> You have a short list of remediation items (for example, unsupported OS) and a target sizing plan.<\/p>\n\n\n\n<p><strong>Verification checklist:<\/strong>\n&#8211; At least one VM is present under discovered inventory.\n&#8211; At least one assessment is generated and viewable.\n&#8211; Readiness and sizing recommendations are displayed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Validation<\/h3>\n\n\n\n<p>Use this quick validation list:<\/p>\n\n\n\n<p>1) <strong>Project exists<\/strong>\n&#8211; Azure portal \u2192 Azure Migrate \u2192 project <code>amg-lab-project<\/code> is accessible.<\/p>\n\n\n\n<p>2) <strong>Appliance connected<\/strong>\n&#8211; Azure Migrate project shows the appliance as registered\/connected.<\/p>\n\n\n\n<p>3) <strong>Inventory present<\/strong>\n&#8211; At least one server\/VM appears in discovered servers.<\/p>\n\n\n\n<p>4) <strong>Assessment produced<\/strong>\n&#8211; At least one assessment exists and shows readiness + sizing outputs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting<\/h3>\n\n\n\n<p>Common issues and practical fixes:<\/p>\n\n\n\n<p>1) <strong>Appliance registration fails<\/strong>\n&#8211; Check:\n  &#8211; System time skew on the appliance VM (fix NTP\/time sync)\n  &#8211; DNS resolution\n  &#8211; Outbound HTTPS connectivity to Azure endpoints (proxy\/firewall allowlist)\n&#8211; Re-try registration after correcting connectivity\/time.<\/p>\n\n\n\n<p>2) <strong>No VMs discovered<\/strong>\n&#8211; Verify credentials provided to Hyper\u2011V have rights to enumerate VMs.\n&#8211; Confirm the appliance can reach the Hyper\u2011V host(s) over the required ports.\n&#8211; Ensure the appliance is connected to the correct network\/vSwitch.<\/p>\n\n\n\n<p>3) <strong>Discovery works but Azure portal shows nothing<\/strong>\n&#8211; Wait for upload\/processing time.\n&#8211; Confirm the appliance status shows successful upload.\n&#8211; Re-check you registered to the correct Azure Migrate project\/subscription.<\/p>\n\n\n\n<p>4) <strong>Assessment won\u2019t generate<\/strong>\n&#8211; Ensure VMs have sufficient collected metadata.\n&#8211; If performance-based sizing is selected but performance data isn\u2019t available yet, switch to static sizing or wait for the collection window.<\/p>\n\n\n\n<p>For authoritative port lists, endpoint allowlists, and appliance requirements, use the Microsoft Learn Azure Migrate documentation: https:\/\/learn.microsoft.com\/azure\/migrate\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cleanup<\/h3>\n\n\n\n<p>To avoid leaving unused resources:<\/p>\n\n\n\n<p>1) In Azure:\n&#8211; Delete the Azure Migrate project resources by deleting the resource group (lab scenario):<\/p>\n\n\n\n<pre><code class=\"language-bash\">az group delete --name rg-azure-migrate-lab --yes --no-wait\n<\/code><\/pre>\n\n\n\n<p>2) On-prem\/Hyper\u2011V:\n&#8211; Shut down and delete the appliance VM.\n&#8211; Remove any temporary credentials used for discovery if they were created for the lab.<\/p>\n\n\n\n<p><strong>Expected outcome:<\/strong> Azure resources are removed and the appliance is no longer running.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">11. Best Practices<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Architecture best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Start with a landing zone<\/strong> (subscriptions, networks, identity, policy) before migrating production.<\/li>\n<li>Use <strong>hub-and-spoke<\/strong> networking for enterprises; plan IP ranges early to avoid collisions.<\/li>\n<li>Design for <strong>hybrid DNS<\/strong> and name resolution from day one.<\/li>\n<li>Group workloads by <strong>application<\/strong>, not by VM counts\u2014dependencies dictate migration waves.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">IAM\/security best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enforce <strong>least privilege<\/strong>:<\/li>\n<li>Separate roles for discovery\/assessment vs migration execution.<\/li>\n<li>Use dedicated, auditable accounts for appliance registration and source discovery.<\/li>\n<li>Protect credentials:<\/li>\n<li>Prefer managed identity where supported (often more relevant in Azure-side automation).<\/li>\n<li>Store secrets in secure systems and rotate them after migration waves.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cost best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Collect enough <strong>performance history<\/strong> to right-size (capture typical and peak patterns).<\/li>\n<li>Build a <strong>retire\/retain\/replace<\/strong> list early; don\u2019t migrate dead workloads.<\/li>\n<li>Minimize replication runtime: keep continuous replication windows as short as practical.<\/li>\n<li>Ensure <strong>test migration VMs<\/strong> are stopped\/deallocated promptly after validation.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Performance best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Validate storage performance needs:<\/li>\n<li>Disk IOPS and throughput often drive Azure disk selection.<\/li>\n<li>Consider proximity\/latency:<\/li>\n<li>Choose target regions close to users and dependent systems.<\/li>\n<li>Don\u2019t assume lift-and-shift equals acceptable performance\u2014run pilot load tests.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Reliability best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong>test migrations<\/strong> (where applicable) before production cutover.<\/li>\n<li>Implement <strong>backup<\/strong> and <strong>monitoring<\/strong> as part of the migration wave definition of done.<\/li>\n<li>Plan rollback:<\/li>\n<li>Define go\/no-go criteria and rollback steps per application.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operations best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create runbooks for:<\/li>\n<li>pre-cutover validation<\/li>\n<li>cutover steps and sequencing<\/li>\n<li>post-cutover smoke tests<\/li>\n<li>incident response during migration windows<\/li>\n<li>Align with ITSM\/change management processes for production waves.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Governance\/tagging\/naming best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Standardize:<\/li>\n<li>Resource naming<\/li>\n<li>Tags (app, owner, environment, cost center, data classification)<\/li>\n<li>Use Azure Policy to enforce:<\/li>\n<li>Allowed regions\/SKUs<\/li>\n<li>Required tags<\/li>\n<li>Diagnostic settings (where appropriate)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">12. Security Considerations<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Identity and access model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure Migrate access is controlled via <strong>Azure RBAC<\/strong> on the project\/resource group\/subscription.<\/li>\n<li>Use role separation:<\/li>\n<li>Read-only for stakeholders<\/li>\n<li>Contributor-like roles for migration engineers<\/li>\n<li>Owner only for limited administrators<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Encryption<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data sent from the appliance to Azure typically uses <strong>TLS\/HTTPS<\/strong>.<\/li>\n<li>Data at rest in Azure is governed by Azure platform encryption controls; validate compliance details for your region and services in Microsoft documentation.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Network exposure<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Prefer <strong>outbound-only<\/strong> appliance connectivity (common pattern), using:<\/li>\n<li>firewall egress allowlists<\/li>\n<li>proxies where required<\/li>\n<li>Avoid opening inbound ports from the internet to the appliance.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secrets handling<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Discovery requires credentials to query hypervisors or hosts.<\/li>\n<li>Store credentials securely, limit scope, rotate after use, and audit access.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Audit\/logging<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enable and review Azure activity logs for:<\/li>\n<li>Project creation<\/li>\n<li>Role assignments<\/li>\n<li>Migration actions (resource creation, network changes)<\/li>\n<li>For deeper logs, consult underlying services (for example, replication service logs) and centralize into Log Analytics if required.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Compliance considerations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Consider:<\/li>\n<li>Data residency (where project metadata is stored)<\/li>\n<li>Regulatory controls (HIPAA, PCI, etc.)<\/li>\n<li>Asset inventory sensitivity (software versions, hostnames, IPs)<\/li>\n<li>Align with your organization\u2019s compliance office and review Microsoft compliance documentation.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Common security mistakes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Using Domain Admin or overly privileged accounts for discovery.<\/li>\n<li>Leaving discovery accounts enabled permanently.<\/li>\n<li>Allowing unrestricted outbound internet from the appliance subnet.<\/li>\n<li>Skipping time synchronization, which can lead to insecure workarounds.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secure deployment recommendations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Place the appliance in a <strong>restricted management subnet<\/strong>.<\/li>\n<li>Use <strong>egress filtering<\/strong> and proxy logging.<\/li>\n<li>Apply OS hardening to the appliance VM as allowed (without breaking supported configuration).<\/li>\n<li>Keep appliance updated per Microsoft guidance.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">13. Limitations and Gotchas<\/h2>\n\n\n\n<p>Because Azure Migrate spans multiple tools and engines, limitations depend on your exact scenario. Common gotchas include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tool availability varies<\/strong> by source type and region; always check Microsoft Learn for your scenario.<\/li>\n<li><strong>Appliance requirements<\/strong> (CPU\/RAM\/disk) and packaging can change; follow portal-provided instructions.<\/li>\n<li><strong>Dependency analysis isn\u2019t universal<\/strong>; some dependency features require agents or specific configurations and may not capture all traffic.<\/li>\n<li><strong>Assessments are estimates<\/strong>:<\/li>\n<li>Short performance collection windows can mislead sizing.<\/li>\n<li>Cost estimates depend on pricing settings (region, offer, reservations).<\/li>\n<li><strong>Unsupported OS\/app combinations<\/strong>: readiness reports may flag OS versions, boot methods, or drivers that require remediation.<\/li>\n<li><strong>Network complexity<\/strong>:<\/li>\n<li>Name resolution (DNS) and time sync issues are frequent and cause registration\/discovery failures.<\/li>\n<li>Proxy\/SSL inspection can break appliance communication if not configured properly.<\/li>\n<li><strong>Replication-based migration costs<\/strong> can surprise teams if replication runs for weeks\/months.<\/li>\n<li><strong>Cutover orchestration is not \u201cmagic\u201d<\/strong>:<\/li>\n<li>Application-level validation and data consistency checks remain your responsibility.<\/li>\n<li><strong>Large estates need multiple appliances<\/strong> and a scaling plan\u2014don\u2019t rely on a single collector for everything.<\/li>\n<li><strong>Multicloud migrations<\/strong>: Azure Migrate can be part of the program, but supported direct discovery\/migration from other clouds depends on the current tools\u2014verify in official docs for AWS\/GCP scenarios.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">14. Comparison with Alternatives<\/h2>\n\n\n\n<p>Azure Migrate is best compared as a <strong>migration hub<\/strong> rather than a single migration engine.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Comparison table<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Option<\/th>\n<th>Best For<\/th>\n<th>Strengths<\/th>\n<th>Weaknesses<\/th>\n<th>When to Choose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Azure Migrate<\/strong> (Azure)<\/td>\n<td>Migrating to Azure with structured discovery\/assessment and integrated tracking<\/td>\n<td>Centralized hub, strong Azure alignment, assessment + migration workflow, partner integration<\/td>\n<td>Depends on underlying tools; scenario coverage varies; appliance management required<\/td>\n<td>You\u2019re moving to Azure and want one programmatic migration cockpit<\/td>\n<\/tr>\n<tr>\n<td><strong>Azure Site Recovery<\/strong> (Azure)<\/td>\n<td>Replication-based DR and some migration execution patterns<\/td>\n<td>Mature replication engine, orchestration for failover\/test<\/td>\n<td>Not a full discovery\/assessment hub; you still need planning and inventory tools<\/td>\n<td>You already know what to move and need replication\/cutover mechanics (or DR)<\/td>\n<\/tr>\n<tr>\n<td><strong>Azure Database Migration Service (DMS)<\/strong> (Azure)<\/td>\n<td>Database migrations to Azure targets<\/td>\n<td>Database-focused migration workflows, cutover support (scenario-dependent)<\/td>\n<td>Not for server inventory; you still need discovery\/assessment<\/td>\n<td>You are primarily moving databases and need structured DB migration<\/td>\n<\/tr>\n<tr>\n<td><strong>AWS Migration Hub + Application Migration Service<\/strong> (AWS)<\/td>\n<td>Migrations into AWS<\/td>\n<td>Strong AWS-native integration, large ecosystem<\/td>\n<td>Not Azure-targeted<\/td>\n<td>You are migrating into AWS, not Azure<\/td>\n<\/tr>\n<tr>\n<td><strong>Google Cloud migration tools (e.g., Migrate to VMs)<\/strong> (GCP)<\/td>\n<td>Migrations into Google Cloud<\/td>\n<td>GCP-native paths for certain workloads<\/td>\n<td>Not Azure-targeted<\/td>\n<td>You are migrating into GCP<\/td>\n<\/tr>\n<tr>\n<td><strong>VMware HCX<\/strong><\/td>\n<td>VMware hybrid mobility and migrations (especially VMware-to-VMware cloud)<\/td>\n<td>Good for VMware-centric mobility and L2 extension scenarios<\/td>\n<td>Not Azure-first; licensing\/architecture constraints<\/td>\n<td>You\u2019re using VMware cloud patterns and need VMware-native mobility<\/td>\n<\/tr>\n<tr>\n<td><strong>Zerto \/ Veeam \/ other third-party replication<\/strong><\/td>\n<td>Specialized replication, DR, and migration patterns across platforms<\/td>\n<td>Flexible, sometimes cross-cloud\/hypervisor<\/td>\n<td>Licensing costs; integration complexity<\/td>\n<td>You need a vendor tool standard or special replication requirements<\/td>\n<\/tr>\n<tr>\n<td><strong>DIY scripts + CMDB exports<\/strong><\/td>\n<td>Small environments or constrained security environments<\/td>\n<td>Low tooling dependence<\/td>\n<td>Error-prone, limited assessment accuracy, hard to track<\/td>\n<td>Very small scope or strict constraints prevent appliance deployment<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">15. Real-World Example<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Enterprise example: data center exit for a regulated organization<\/h3>\n\n\n\n<p><strong>Problem<\/strong>\nA regulated enterprise has 1,200 VMware VMs across two data centers. Hardware contracts end in 12 months. Leadership requires a predictable migration plan, cost forecast, and minimized downtime.<\/p>\n\n\n\n<p><strong>Proposed architecture<\/strong>\n&#8211; Azure landing zone:\n  &#8211; Management groups, policies, tagging standards\n  &#8211; Hub-spoke networking with centralized firewall and DNS integration\n  &#8211; Dedicated migration subscription + production subscriptions\n&#8211; Azure Migrate:\n  &#8211; Multiple appliances segmented by network zone (prod vs non-prod)\n  &#8211; Performance-based discovery for 30\u201345 days (verify required window in your plan)\n  &#8211; Dependency analysis enabled for tier\u20111 apps where supported\n&#8211; Migration execution:\n  &#8211; Replication-based server migrations for lift-and-shift VMs (scenario-dependent engine)\n  &#8211; Database migrations planned separately to PaaS targets where possible<\/p>\n\n\n\n<p><strong>Why Azure Migrate was chosen<\/strong>\n&#8211; Centralized inventory and assessment for a large estate\n&#8211; Wave-based planning with dependency visibility\n&#8211; Standard tracking and reporting for program governance<\/p>\n\n\n\n<p><strong>Expected outcomes<\/strong>\n&#8211; Reliable inventory baseline within weeks\n&#8211; Reduced Azure cost through right-sizing (compared to allocation-based sizing)\n&#8211; Lower outage risk due to dependency-informed migration waves\n&#8211; Consistent reporting to leadership and auditors<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Startup\/small-team example: consolidating a small Hyper\u2011V footprint<\/h3>\n\n\n\n<p><strong>Problem<\/strong>\nA startup has 15 Hyper\u2011V VMs in a small colocated rack. They want to move to Azure to reduce operational burden but need cost predictability.<\/p>\n\n\n\n<p><strong>Proposed architecture<\/strong>\n&#8211; Single Azure subscription with:\n  &#8211; One VNet, separate subnets for app and data\n  &#8211; Azure Backup for critical VMs after migration\n&#8211; Azure Migrate:\n  &#8211; One appliance for discovery and assessment\n  &#8211; Short performance collection window plus manual validation for known peak times<\/p>\n\n\n\n<p><strong>Why Azure Migrate was chosen<\/strong>\n&#8211; Quick and guided approach without building custom inventory tooling\n&#8211; Produces cost estimates to decide between IaaS lift-and-shift and PaaS modernization later<\/p>\n\n\n\n<p><strong>Expected outcomes<\/strong>\n&#8211; A clear \u201cmove vs retire\u201d decision list\n&#8211; Right-sized Azure VMs to control monthly spend\n&#8211; A repeatable plan for future growth and migrations<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">16. FAQ<\/h2>\n\n\n\n<p>1) <strong>Is Azure Migrate the same as Azure Site Recovery?<\/strong><br\/>\nNo. Azure Migrate is a migration hub for discovery, assessment, and tracking. Azure Site Recovery is a replication engine used for DR and, in some scenarios, migration execution. Azure Migrate may use Site Recovery technology under the hood for server migrations.<\/p>\n\n\n\n<p>2) <strong>Does Azure Migrate cost money?<\/strong><br\/>\nThe Azure Migrate hub and many assessment features are commonly listed as no additional charge, but migrations can incur charges in underlying services (replication, storage, compute, networking, monitoring). Confirm on the official pricing page: https:\/\/azure.microsoft.com\/pricing\/details\/azure-migrate\/<\/p>\n\n\n\n<p>3) <strong>Do I need to install agents on every server?<\/strong><br\/>\nOften no for VMware\/Hyper\u2011V discovery (appliance-based \u201cagentless\u201d discovery is common), but some features (like dependency analysis or certain source types) may require agents or additional configuration. Verify for your scenario.<\/p>\n\n\n\n<p>4) <strong>Can Azure Migrate discover physical servers?<\/strong><br\/>\nYes, Azure Migrate supports physical server discovery in certain workflows, typically using agents\/collectors. The exact method depends on your OS and environment\u2014verify the current documentation.<\/p>\n\n\n\n<p>5) <strong>How long should I collect performance data before running an assessment?<\/strong><br\/>\nLonger windows capture peaks and seasonality better. Many teams start with 7\u201314 days for a quick view and extend for more accuracy. Follow Microsoft guidance for your assessment type and your workload behavior.<\/p>\n\n\n\n<p>6) <strong>Can I migrate from AWS or GCP using Azure Migrate?<\/strong><br\/>\nAzure Migrate can participate in multicloud programs, but direct discovery\/migration support depends on the specific tooling available in the portal at the time. Always validate source cloud support in Microsoft Learn for your exact scenario.<\/p>\n\n\n\n<p>7) <strong>Does Azure Migrate move applications or only servers?<\/strong><br\/>\nAzure Migrate primarily focuses on workload migration planning and server migration tracking\/execution. Application modernization (refactoring) is typically done with other Azure services and practices, though Azure Migrate can help you discover and plan.<\/p>\n\n\n\n<p>8) <strong>Can Azure Migrate estimate costs accurately?<\/strong><br\/>\nIt provides estimates based on collected data and your assessment settings. Accuracy depends on performance data quality, pricing options chosen, and post-migration operational needs (backup, monitoring, security). Use it as a planning tool, then validate with pilots.<\/p>\n\n\n\n<p>9) <strong>Do I have to use the Azure Migrate appliance?<\/strong><br\/>\nFor VMware\/Hyper\u2011V discovery, the appliance is the standard approach. Alternative approaches may exist for specific sources, but the appliance is the common, supported method for rich inventory.<\/p>\n\n\n\n<p>10) <strong>Is the Azure Migrate project tied to a single region?<\/strong><br\/>\nThe project is created in a region for storing metadata. Whether that constrains migration targets depends on tool\/scenario\u2014verify in official docs.<\/p>\n\n\n\n<p>11) <strong>Can I run multiple appliances?<\/strong><br\/>\nYes, large or segmented environments often require multiple appliances (for scale, network segmentation, or administrative boundaries). Follow Microsoft scaling guidance.<\/p>\n\n\n\n<p>12) <strong>What\u2019s the difference between readiness and sizing?<\/strong><br\/>\n&#8211; <strong>Readiness<\/strong>: compatibility checks (OS, configuration) and whether it can run in Azure.<br\/>\n&#8211; <strong>Sizing<\/strong>: recommended VM size based on performance\/allocation.<\/p>\n\n\n\n<p>13) <strong>What are common causes of discovery failures?<\/strong><br\/>\nDNS issues, time sync problems, proxy\/firewall blocking outbound endpoints, insufficient permissions to query hypervisors, and network segmentation issues.<\/p>\n\n\n\n<p>14) <strong>Can I use Azure Migrate for ongoing inventory after migration?<\/strong><br\/>\nAzure Migrate is designed for migration planning\/execution. For ongoing hybrid inventory and governance, consider tools like Azure Arc (separate service) depending on your needs.<\/p>\n\n\n\n<p>15) <strong>Should I migrate databases as VMs or to PaaS?<\/strong><br\/>\nIt depends on compatibility, required features, timeline, and skillset. Many organizations lift-and-shift first for speed, then modernize to PaaS. Azure Migrate helps with discovery\/assessment; database migration tooling is chosen per database type and target.<\/p>\n\n\n\n<p>16) <strong>Does Azure Migrate handle licensing (Windows\/SQL) automatically?<\/strong><br\/>\nCost estimates can incorporate licensing assumptions depending on assessment settings, but licensing is complex. Validate eligibility for Azure Hybrid Benefit and licensing terms with Microsoft documentation and your licensing provider.<\/p>\n\n\n\n<p>17) <strong>What should I do if an assessment says \u201cnot ready\u201d?<\/strong><br\/>\nReview the reported issues (unsupported OS, boot configuration, drivers, etc.), remediate if possible (upgrade OS, adjust settings), and re-run assessment. For edge cases, consider alternative migration methods or modernization.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">17. Top Online Resources to Learn Azure Migrate<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Resource Type<\/th>\n<th>Name<\/th>\n<th>Why It Is Useful<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Official documentation<\/td>\n<td>Azure Migrate documentation (Microsoft Learn) \u2014 https:\/\/learn.microsoft.com\/azure\/migrate\/<\/td>\n<td>Canonical, scenario-by-scenario guidance, prerequisites, troubleshooting<\/td>\n<\/tr>\n<tr>\n<td>Official pricing<\/td>\n<td>Azure Migrate pricing \u2014 https:\/\/azure.microsoft.com\/pricing\/details\/azure-migrate\/<\/td>\n<td>Explains what\u2019s free vs what you pay for via dependent services<\/td>\n<\/tr>\n<tr>\n<td>Pricing calculator<\/td>\n<td>Azure Pricing Calculator \u2014 https:\/\/azure.microsoft.com\/pricing\/calculator\/<\/td>\n<td>Build estimates for target VMs, storage, networking, monitoring<\/td>\n<\/tr>\n<tr>\n<td>Architecture guidance<\/td>\n<td>Azure Architecture Center \u2014 https:\/\/learn.microsoft.com\/azure\/architecture\/<\/td>\n<td>Landing zone patterns, migration and governance best practices<\/td>\n<\/tr>\n<tr>\n<td>Cloud Adoption Framework<\/td>\n<td>Cloud Adoption Framework (Azure) \u2014 https:\/\/learn.microsoft.com\/azure\/cloud-adoption-framework\/<\/td>\n<td>Enterprise migration strategy, governance, and operating model guidance<\/td>\n<\/tr>\n<tr>\n<td>Tutorial\/getting started<\/td>\n<td>Azure Migrate \u201cdiscover and assess\u201d tutorials (Microsoft Learn) \u2014 https:\/\/learn.microsoft.com\/azure\/migrate\/<\/td>\n<td>Step-by-step walkthroughs for VMware\/Hyper\u2011V\/physical scenarios<\/td>\n<\/tr>\n<tr>\n<td>Related service docs<\/td>\n<td>Azure Site Recovery documentation \u2014 https:\/\/learn.microsoft.com\/azure\/site-recovery\/<\/td>\n<td>Deep operational guidance when server migration uses replication engines<\/td>\n<\/tr>\n<tr>\n<td>Related service docs<\/td>\n<td>Azure Database Migration documentation \u2014 https:\/\/learn.microsoft.com\/azure\/dms\/<\/td>\n<td>Database migration service guidance and constraints<\/td>\n<\/tr>\n<tr>\n<td>Video learning<\/td>\n<td>Microsoft Azure YouTube channel \u2014 https:\/\/www.youtube.com\/@MicrosoftAzure<\/td>\n<td>Regularly updated demos and conceptual walkthroughs<\/td>\n<\/tr>\n<tr>\n<td>Community learning<\/td>\n<td>Microsoft Tech Community (Azure Migration &amp; Modernization) \u2014 https:\/\/techcommunity.microsoft.com\/<\/td>\n<td>Practical field notes, announcements, and Q&amp;A (validate against docs)<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">18. Training and Certification Providers<\/h2>\n\n\n\n<p>The following providers are listed as training options. Verify current course offerings, instructors, and schedules on each website.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Institute<\/th>\n<th>Suitable Audience<\/th>\n<th>Likely Learning Focus<\/th>\n<th>Mode<\/th>\n<th>Website URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>DevOpsSchool.com<\/td>\n<td>DevOps engineers, cloud engineers, architects<\/td>\n<td>Azure migration projects, DevOps practices, cloud operations<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.devopsschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>ScmGalaxy.com<\/td>\n<td>Beginners to intermediate IT professionals<\/td>\n<td>DevOps fundamentals, cloud basics, migration concepts<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.scmgalaxy.com\/<\/td>\n<\/tr>\n<tr>\n<td>CLoudOpsNow.in<\/td>\n<td>Cloud ops and platform teams<\/td>\n<td>Cloud operations, reliability, governance, monitoring<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.cloudopsnow.in\/<\/td>\n<\/tr>\n<tr>\n<td>SreSchool.com<\/td>\n<td>SREs, operations teams, reliability engineers<\/td>\n<td>SRE practices applicable to post-migration operations<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.sreschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>AiOpsSchool.com<\/td>\n<td>Ops teams exploring automation<\/td>\n<td>AIOps concepts for monitoring and incident response<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.aiopsschool.com\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">19. Top Trainers<\/h2>\n\n\n\n<p>These sites are listed as trainer\/platform resources. Validate trainer profiles, course scope, and credentials directly on each site.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Platform\/Site<\/th>\n<th>Likely Specialization<\/th>\n<th>Suitable Audience<\/th>\n<th>Website URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>RajeshKumar.xyz<\/td>\n<td>Cloud\/DevOps training content (verify specifics)<\/td>\n<td>Beginners to intermediate engineers<\/td>\n<td>https:\/\/www.rajeshkumar.xyz\/<\/td>\n<\/tr>\n<tr>\n<td>devopstrainer.in<\/td>\n<td>DevOps tooling and practices (verify specifics)<\/td>\n<td>DevOps engineers and sysadmins<\/td>\n<td>https:\/\/www.devopstrainer.in\/<\/td>\n<\/tr>\n<tr>\n<td>devopsfreelancer.com<\/td>\n<td>Freelance DevOps services\/training (verify specifics)<\/td>\n<td>Teams needing short-term help or coaching<\/td>\n<td>https:\/\/www.devopsfreelancer.com\/<\/td>\n<\/tr>\n<tr>\n<td>devopssupport.in<\/td>\n<td>DevOps support and enablement (verify specifics)<\/td>\n<td>Ops\/DevOps teams needing guided support<\/td>\n<td>https:\/\/www.devopssupport.in\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">20. Top Consulting Companies<\/h2>\n\n\n\n<p>These organizations may offer consulting services. Confirm exact service catalogs, references, and statements of work directly with each company.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Company Name<\/th>\n<th>Likely Service Area<\/th>\n<th>Where They May Help<\/th>\n<th>Consulting Use Case Examples<\/th>\n<th>Website URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>cotocus.com<\/td>\n<td>Cloud\/DevOps consulting (verify exact focus)<\/td>\n<td>Migration planning, implementation support, DevOps enablement<\/td>\n<td>Azure landing zone readiness review; migration wave planning; automation setup<\/td>\n<td>https:\/\/cotocus.com\/<\/td>\n<\/tr>\n<tr>\n<td>DevOpsSchool.com<\/td>\n<td>Training + consulting (verify exact offerings)<\/td>\n<td>Migration program enablement, skills uplift, implementation assistance<\/td>\n<td>Azure Migrate assessment factory setup; operational runbooks; governance basics<\/td>\n<td>https:\/\/www.devopsschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>DEVOPSCONSULTING.IN<\/td>\n<td>DevOps consulting (verify exact focus)<\/td>\n<td>CI\/CD, operations, and cloud adoption support<\/td>\n<td>Post-migration DevOps pipelines; monitoring\/logging design; IaC practices<\/td>\n<td>https:\/\/www.devopsconsulting.in\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">21. Career and Learning Roadmap<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn before Azure Migrate<\/h3>\n\n\n\n<p>To use Azure Migrate effectively (especially in Hybrid + Multicloud programs), you should understand:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Azure fundamentals<\/strong><\/li>\n<li>Subscriptions, resource groups, regions<\/li>\n<li>VNets, subnets, NSGs, routing<\/li>\n<li>Azure identity (Microsoft Entra ID) and Azure RBAC<\/li>\n<li><strong>Virtualization fundamentals<\/strong><\/li>\n<li>VMware vSphere or Hyper\u2011V concepts<\/li>\n<li>VM sizing, storage, networking<\/li>\n<li><strong>Migration basics<\/strong><\/li>\n<li>Discovery\/inventory methods<\/li>\n<li>Lift-and-shift vs re-platform vs refactor<\/li>\n<li>Cutover planning and rollback strategies<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn after Azure Migrate<\/h3>\n\n\n\n<p>Azure Migrate gets workloads into Azure; long-term success depends on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Azure landing zones and governance<\/strong><\/li>\n<li>Cloud Adoption Framework<\/li>\n<li>Azure Policy, management groups, tagging strategy<\/li>\n<li><strong>Operations<\/strong><\/li>\n<li>Azure Monitor, Log Analytics<\/li>\n<li>Backup (Azure Backup)<\/li>\n<li>Patch management and configuration management<\/li>\n<li><strong>Security<\/strong><\/li>\n<li>Defender for Cloud<\/li>\n<li>Key Vault and secrets management<\/li>\n<li>Network security (firewalling, private endpoints where appropriate)<\/li>\n<li><strong>Modernization<\/strong><\/li>\n<li>AKS, App Service, managed databases<\/li>\n<li>IaC: Bicep\/Terraform and CI\/CD pipelines<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Job roles that use Azure Migrate<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cloud engineer (migration)<\/li>\n<li>Solutions architect \/ cloud architect<\/li>\n<li>Infrastructure engineer (VMware\/Hyper\u2011V to Azure)<\/li>\n<li>Platform engineer (landing zone + migration factory)<\/li>\n<li>Security engineer (migration governance and risk)<\/li>\n<li>SRE\/operations engineer (post-migration reliability)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Certification path (Azure)<\/h3>\n\n\n\n<p>Certifications change over time; verify the current Microsoft certification catalog. Commonly relevant paths include:\n&#8211; Azure fundamentals (AZ\u2011900)\n&#8211; Azure administrator (AZ\u2011104)\n&#8211; Azure solutions architect (AZ\u2011305)\n&#8211; Specialty\/security certifications depending on role<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Project ideas for practice<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Build a small Hyper\u2011V lab and run discovery\/assessment for 3 tiers (web\/app\/db).<\/li>\n<li>Create two assessments with different assumptions (Pay\u2011As\u2011You\u2011Go vs reservations) and compare outputs.<\/li>\n<li>Design a migration wave plan based on dependencies and business criticality.<\/li>\n<li>Create an Azure landing zone baseline and map assessed workloads to subnets and policies.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">22. Glossary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Azure Migrate project:<\/strong> The Azure resource\/container that centralizes discovery, assessment, and migration tracking.<\/li>\n<li><strong>Azure Migrate appliance:<\/strong> A VM\/software component deployed in the source environment to collect inventory and performance data and send it to Azure.<\/li>\n<li><strong>Discovery:<\/strong> The process of enumerating servers\/VMs and collecting their configuration metadata.<\/li>\n<li><strong>Assessment:<\/strong> An analysis report that estimates Azure readiness, sizing recommendations, and costs based on collected data and assumptions.<\/li>\n<li><strong>Right-sizing:<\/strong> Selecting appropriately sized Azure VM SKUs based on actual utilization rather than current allocations.<\/li>\n<li><strong>Dependency analysis:<\/strong> Mapping communication between servers\/app tiers to plan safe migration groupings.<\/li>\n<li><strong>Lift-and-shift:<\/strong> Migrating servers as-is to Azure VMs with minimal changes.<\/li>\n<li><strong>Re-platform:<\/strong> Making moderate changes (for example, moving a database to managed service) without full refactor.<\/li>\n<li><strong>Refactor:<\/strong> Redesigning application architecture for cloud-native services.<\/li>\n<li><strong>Cutover:<\/strong> The point where production traffic\/users switch from the source environment to the migrated target.<\/li>\n<li><strong>Test migration:<\/strong> A rehearsal migration run that validates boot and basic functionality without final cutover.<\/li>\n<li><strong>Landing zone:<\/strong> A prepared Azure environment with governance, networking, identity, and security foundations for hosting workloads.<\/li>\n<li><strong>Azure RBAC:<\/strong> Role-based access control mechanism for authorizing actions in Azure.<\/li>\n<li><strong>Hybrid + Multicloud:<\/strong> Operating across on-premises and\/or multiple cloud providers with integrated governance and operations.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">23. Summary<\/h2>\n\n\n\n<p>Azure Migrate is Azure\u2019s central migration hub for <strong>discovering<\/strong>, <strong>assessing<\/strong>, and <strong>tracking<\/strong> migrations\u2014most commonly from <strong>VMware, Hyper\u2011V, and physical servers<\/strong> into Azure, and as part of broader <strong>Hybrid + Multicloud<\/strong> programs.<\/p>\n\n\n\n<p>It matters because successful migrations require accurate inventory, dependency awareness, right-sizing, and a controlled cutover process. Azure Migrate provides the structure for that journey, while migration execution and runtime costs typically come from underlying services (replication engines, storage, compute, networking, monitoring).<\/p>\n\n\n\n<p>From a cost perspective, treat Azure Migrate as the planning cockpit: optimize spend by collecting performance data, right-sizing, retiring unused workloads, and avoiding long replication windows. From a security perspective, use least-privilege Azure RBAC, restrict appliance networking, protect discovery credentials, and audit migration actions.<\/p>\n\n\n\n<p>Use Azure Migrate when you need a governed path from assessment to migration into Azure. As a next step, follow the Microsoft Learn scenario guide for your exact source platform and run a pilot migration wave after completing assessments: https:\/\/learn.microsoft.com\/azure\/migrate\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hybrid + Multicloud<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[40,45,46],"tags":[],"class_list":["post-443","post","type-post","status-publish","format-standard","hentry","category-azure","category-hybrid-multicloud","category-migration"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/443","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/comments?post=443"}],"version-history":[{"count":0,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/443\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/media?parent=443"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/categories?post=443"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/tags?post=443"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}