Contoso Data Download

We would like to show you a description here but the site won’t allow us.

  1. Contoso Sales Demo is an application based on Power BI embedded analytics, demonstrating a sales management portal. The application empowers salespeople and sales managers to make business decisions based on data. Salespeople can monitor and track sales, leads, opportunities and accounts, and manage.
  2. Contoso assesses the application VMs using the Azure Migrate service, and the SQL Server application database using Data Migration Assistant. Overview As Contoso considers migrating to Azure, the company needs a technical and financial assessment to determine whether its on-premises workloads are good candidates for cloud migration.

This section of the Cloud Adoption Framework for Azure provides examples of several common migration scenarios and demonstrates how you can migrate on-premises infrastructure to Microsoft Azure.


Azure provides access to a comprehensive set of cloud services. As developers and IT professionals, you can use these services to build, deploy, and manage applications on a range of tools and frameworks through a global network of datacenters. As your business faces challenges associated with the digital shift, the Azure platform helps you to figure out how to:

  • Optimize resources and operations.
  • Engage with your customers and employees.
  • Transform your products.

The cloud provides advantages for speed and flexibility, minimized costs, performance, and reliability. But many organizations will need to continue to run on-premises datacenters. In response to cloud adoption barriers, Azure provides a hybrid cloud strategy that builds bridges between your on-premises datacenters and the Azure public cloud. An example is using Azure cloud resources like Azure Backup to protect on-premises resources or Azure analytics to gain insights into on-premises workloads.

As part of the hybrid cloud strategy, Azure provides growing solutions for migrating on-premises applications and workloads to the cloud. With simple steps, you can comprehensively assess your on-premises resources to figure out how they'll run in the Azure platform. Then, with a deep assessment in hand, you can confidently migrate resources to Azure. When resources are up and running in Azure, you can optimize them to retain and improve access, flexibility, security, and reliability.

Migration patterns

Strategies for migration to the cloud fall into four broad patterns: rehost, refactor, rearchitect, or rebuild. The strategy you adopt depends on your business drivers and migration goals. You might adopt multiple patterns. For example, you could choose to rehost noncritical applications while rearchitecting applications that are more complex and business-critical. Let's look at these patterns.

PatternDefinitionWhen to use
RehostOften referred to as a lift-and-shift migration, this option doesn't require code changes. You can use it to migrate your existing applications to Azure quickly. Each application is migrated as is to reap the benefits of the cloud without the risk and cost associated with code changes.When you need to move applications quickly to the cloud.
When you want to move an application without modifying it.
When your applications are designed so that they can take advantage of Azure infrastructure as a service (IaaS) scalability after migration.
When applications are important to your business, but you don't need to immediately change application capabilities.
RefactorOften referred to as 'repackaging,' refactoring requires minimal changes to applications so that they can connect to Azure platform as a service (PaaS) and use cloud offerings.
For example, you could migrate existing applications to Azure App Service or Azure Kubernetes Service (AKS).
Or, you could refactor relational and nonrelational databases into options such as Azure SQL Managed Instance, Azure Database for MySQL, Azure Database for PostgreSQL, and Azure Cosmos DB.
If your application can easily be repackaged to work in Azure.
If you want to apply innovative DevOps practices provided by Azure, or if you're thinking about DevOps using a container strategy for workloads.
For refactoring, you need to think about the portability of your existing code base and available development skills.
RearchitectRearchitecting for migration focuses on modifying and extending application functionality and the code base to optimize the application architecture for cloud scalability.
For example, you could break down a monolithic application into a group of microservices that work together and scale easily.
You could also rearchitect relational and nonrelational databases to a fully managed database solution, such as SQL Managed Instance, Azure Database for MySQL, Azure Database for PostgreSQL, and Azure Cosmos DB.
When your applications need major revisions to incorporate new capabilities or to work effectively on a cloud platform.
When you want to use existing application investments, meet scalability requirements, apply innovative DevOps practices, and minimize use of virtual machines.
RebuildRebuild takes things a step further by rebuilding an application from scratch using Azure cloud technologies.
For example, you could build greenfield applications with cloud-native technologies like Azure Functions, AI, SQL Managed Instance, and Azure Cosmos DB.
When you want rapid development, and existing applications have limited functionality and lifespan.
When you're ready to expedite business innovation (including DevOps practices provided by Azure), build new applications using cloud-native technologies, and take advantage of advancements in AI, blockchain, and IoT.

Migration example articles

This section provides examples of several common migration scenarios. Each example includes background information and detailed deployment scenarios that illustrate how to set up a migration infrastructure and assess the suitability of on-premises resources for migration. More articles will be added to this section over time.

Figure 1: Common migration and modernization project categories.

This series focuses on each migration scenario, driven by slightly different business goals that determine the migration strategy. For each deployment scenario, we provide information about:

  • Business drivers and goals.
  • A proposed architecture.
  • Steps to perform the migration.
  • Recommendations for cleanup and next steps after migration is finished.


Contoso Data Download
Assess on-premises resources for migration to AzureThis best practice article in the Plan methodology discusses how to run an assessment of an on-premises application running on VMware. In the article, an example organization assesses application VMs by using Azure Migrate and the application SQL Server database by using Data Migration Assistant.


Deploy Azure infrastructureThis article shows how an organization can prepare its on-premises infrastructure and its Azure infrastructure for migration. The infrastructure example established in this article is referenced in the other samples provided in this section.

Windows Server workloads

Rehost an application on Azure VMsThis article provides an example of migrating on-premises application VMs to Azure VMs using Azure Migrate.

SQL Server workloads

Migrate SQL Server databases to AzureThis article demonstrates how the fictional company Contoso assessed, planned, and migrated its various on-premises SQL Server databases to Azure.
Rehost an application on an Azure VM and SQL Managed InstanceThis article provides an example of a lift-and-shift migration to Azure for an on-premises application. This process involves migrating the application front-end VM by using Azure Migrate and the application database to SQL Managed Instance by using Azure Database Migration Service.
Rehost an application on Azure VMs using SQL Server Always On availability groupsThis example shows how to migrate an application and data by using Azure-hosted SQL Server VMs. It uses Azure Migrate to migrate the application VMs and Database Migration Service to migrate the application database to a SQL Server cluster that's protected by an Always On availability group.

Linux and open-source databases

Migrate open-source databases to AzureThis article demonstrates how the fictional company Contoso assessed, planned, and migrated its various on-premises open-source databases to Azure.
Migrate MySQL to AzureThis article demonstrates how the fictional company Contoso planned and migrated its on-premises MySQL open-source database platform to Azure.
Migrate PostgreSQL to AzureThis article demonstrates how the fictional company Contoso planned and migrated its on-premises PostgreSQL open-source database platform to Azure.
Migrate MariaDB to AzureThis article demonstrates how the fictional company Contoso planned and migrated its on-premises MariaDB open-source database platform to Azure.
Rehost a Linux application on Azure VMs and Azure Database for MySQLThis article provides an example of migrating a Linux-hosted application to Azure VMs by using Azure Migrate. The application database is migrated to Azure Database for MySQL by using Database Migration Service.
Rehost a Linux application on Azure VMsThis example shows how to complete a lift-and-shift migration of a Linux-based application to Azure VMs by using Azure Migrate.

Dev/test workloads

Migrate dev/test environments to Azure IaaSThis article demonstrates how Contoso rehosts its dev/test environment for two applications running on VMware VMs by migrating to Azure VMs.
Migrate to Azure DevTest LabsThis article discusses how Contoso moves its dev/test workloads to Azure by using DevTest Labs.

ASP.NET and PHP web apps

Refactor a Windows application using App Service and SQL DatabaseThis example shows how to migrate an on-premises Windows-based application to an Azure web app and migrate the application database to an Azure SQL Database server instance by using Database Migration Service.
Refactor a Windows application using App Service and SQL Managed InstanceThis example shows how to migrate an on-premises Windows-based application to an Azure web app and migrate the application database to SQL Managed Instance by using Database Migration Service.
Refactor a Linux application to multiple regions using App Service, Azure Traffic Manager, and Azure Database for MySQLThis example shows how to migrate an on-premises Linux-based application to an Azure web app on multiple Azure regions by using Traffic Manager to integrate with GitHub for continuous delivery. The application database is migrated to an Azure Database for MySQL instance.
Rebuild an application in AzureThis article provides an example of rebuilding an on-premises application by using a range of Azure capabilities and managed services. These capabilities and services include App Service, AKS, Azure Functions, Azure Cognitive Services, and Azure Cosmos DB.
Refactor Team Foundation Server to Azure DevOps ServicesThis article shows an example migration of an on-premises Team Foundation Server deployment to Azure DevOps Services in Azure.


SAP migration guideGet practical guidance to move your on-premises SAP workloads to the cloud.
Migrate SAP applications to AzureWhite paper and roadmap for your SAP journey to the cloud.
Migration methodologies for SAP on AzureOverview of various migration options to move SAP applications to Azure.

Specialized workloads

Move on-premises VMware infrastructure to AzureThis article provides an example of moving on-premises VMware VMs to Azure by using Azure VMware Solution.
Azure NetApp FilesEnterprise file storage powered by NetApp. Run Linux and Windows file workloads in Azure.
Oracle on AzureRun your Oracle databases and enterprise applications in Azure and Oracle Cloud Infrastructure.
Cray in AzureHigh-performance computing with Cray in Azure. A dedicated supercomputer on your virtual network.


Move on-premises Remote Desktop Services to Windows Virtual Desktop in AzureThis article shows how to migrate on-premises Remote Desktop Services to Windows Virtual Desktop in Azure.

Migration scaling

Scale a migration to AzureThis article shows how an example organization prepares to scale to a full migration to Azure.

Demo applications

The example articles provided in this section use two demo applications: SmartHotel360 and osTicket.

SmartHotel360: This test application was developed by Microsoft to use when you work with Azure. It's provided under an open-source license, and you can download it from GitHub. It's an ASP.NET application connected to a SQL Server database. In the scenarios discussed in these articles, the current version of this application is deployed to two VMware VMs running Windows Server 2008 R2 and SQL Server 2008 R2. These application VMs are hosted on-premises and managed by vCenter Server.

osTicket: This open-source service desk ticketing application runs on Linux. You can download it from GitHub. In the scenarios discussed in these articles, the current version of this application is deployed on-premises to two VMware VMs running Ubuntu 16.04 LTS using Apache 2, PHP 7.0, and MySQL 5.7.


This article shows how the fictional company Contoso assesses an on-premises app for migration to Azure. In the example scenario, Contoso's on-premises SmartHotel360 application currently runs on VMware. Contoso assesses the application VMs using the Azure Migrate service, and the SQL Server application database using Data Migration Assistant.


As Contoso considers migrating to Azure, the company needs a technical and financial assessment to determine whether its on-premises workloads are good candidates for cloud migration. In particular, the Contoso team wants to assess machine and database compatibility for migration. It wants to estimate capacity and costs for running Contoso's resources in Azure.

To get started and to better understand the technologies involved, Contoso assesses two of its on-premises apps, summarized in the following table. The company assesses for migration scenarios that rehost and refactor apps for migration. Learn more about rehosting and refactoring in the migration examples overview.

App namePlatformApp tiersDetails
(manages Contoso travel requirements)
Runs on Windows with a SQL Server databaseTwo-tiered app. The front-end ASP.NET website runs on one VM (WEBVM) and the SQL Server runs on another VM (SQLVM).VMs run on a VMware ESXi host managed by vCenter Server.
You can download the sample app from GitHub.
(Contoso service desk app)
Runs on a LAMP stack.Two-tiered app. A front-end PHP website runs on one VM (OSTICKETWEB) and the MySQL database runs on another VM (OSTICKETMYSQL).The app is used by customer service apps to track issues for internal employees and external customers.
You can download the sample from GitHub.

Current architecture

This diagram shows the current Contoso on-premises infrastructure:

  • Contoso has one main datacenter. The datacenter is located in the city of New York in the Eastern United States.
  • Contoso has three additional local branches across the United States.
  • The main datacenter is connected to the internet with a fiber optic Metro Ethernet connection (500 MBps).
  • Each branch is connected locally to the internet by using business-class connections with IPsec VPN tunnels back to the main datacenter. The setup allows Contoso's entire network to be permanently connected and optimizes internet connectivity.
  • The main datacenter is fully virtualized with VMware. Contoso has two ESXi 6.5 virtualization hosts that are managed by vCenter Server 6.5.
  • Contoso uses Active Directory for identity management. Contoso uses DNS servers on the internal network.
  • The domain controllers in the datacenter run on VMware VMs. The domain controllers at local branches run on physical servers.

Business drivers

Contoso's IT leadership team has worked closely with the company's business partners to understand what the business wants to achieve with this migration:

  • Address business growth. Contoso is growing. As a result, pressure has increased on the company's on-premises systems and infrastructure.
  • Increase efficiency. Contoso needs to remove unnecessary procedures and streamline processes for its developers and users. The business needs IT to be fast and to not waste time or money, so the company can deliver faster on customer requirements.
  • Increase agility. Contoso IT needs to be more responsive to the needs of the business. It must be able to react faster than the changes that occur in the marketplace for the company to be successful in a global economy. IT at Contoso must not get in the way or become a business blocker.
  • Scale. As the company's business grows successfully, Contoso IT must provide systems that can grow at the same pace.

Assessment goals

The Contoso cloud team has identified goals for its migration assessments:

  • After migration, apps in Azure should have the same performance capabilities that apps have today in Contoso's on-premises VMware environment. Moving to the cloud doesn't mean that app performance is less critical.
  • Contoso needs to understand the compatibility of its applications and databases with Azure requirements. Contoso also needs to understand its hosting options in Azure.
  • Contoso's database administration should be minimized after apps move to the cloud.
  • Contoso wants to understand not only its migration options, but also the costs associated with the infrastructure after it moves to the cloud.

Assessment tools

Contoso uses Microsoft tools for its migration assessment. The tools align with the company's goals and should provide Contoso with all the information it needs.

Data Migration AssistantContoso uses Data Migration Assistant to assess and detect compatibility issues that might affect its database functionality in Azure. Data Migration Assistant assesses feature parity between SQL sources and targets. It recommends performance and reliability improvements.Data Migration Assistant is a free downloadable tool.
Azure MigrateContoso uses the Azure Migrate service to assess its VMware VMs. Azure Migrate assesses the migration suitability of the machines. It provides sizing and cost estimates for running in Azure.Azure Migrate is available at no additional charge. However, you may incur charges depending on the tools (first-party or ISV) you decide to use for assessment and migration. Learn more about Azure Migrate pricing.
Service MapAzure Migrate uses Service Map to show dependencies between machines that the company wants to migrate.Service Map is part of Azure Monitor logs. Currently, Contoso can use Service Map for 180 days without incurring charges.

In this scenario, Contoso downloads and runs Data Migration Assistant to assess the on-premises SQL Server database for its travel app. Contoso uses Azure Migrate with dependency mapping to assess the app VMs before migration to Azure.

Assessment architecture

  • Contoso is a fictional name that represents a typical enterprise organization.
  • Contoso has an on-premises datacenter (contoso-datacenter) and on-premises domain controllers (CONTOSODC1, CONTOSODC2).
  • VMware VMs are located on VMware ESXi hosts running version 6.5 (contosohost1, contosohost2).
  • The VMware environment is managed by vCenter Server 6.5 (vcenter.contoso.com, running on a VM).
  • The SmartHotel360 travel app has these characteristics:
    • The app is tiered across two VMware VMs (WEBVM and SQLVM).
    • The VMs are located on VMware ESXi host contosohost1.contoso.com.
    • The VMs are running Windows Server 2008 R2 Datacenter with SP1.
  • The VMware environment is managed by vCenter Server (vcenter.contoso.com) running on a VM.
  • The osTicket service desk app:
    • The app is tiered across two VMs (OSTICKETWEB and OSTICKETMYSQL).
    • The VMs are running Ubuntu Linux Server 16.04-LTS.
    • OSTICKETWEB is running Apache 2 and PHP 7.0.
    • OSTICKETMYSQL is running MySQL 5.7.22.


Contoso and other users must meet the following prerequisites for the assessment:

  • Owner or Contributor permissions for the Azure subscription, or for a resource group in the Azure subscription.
  • An on-premises vCenter Server instance running version 6.5, 6.0, or 5.5.
  • A read-only account in vCenter Server, or permissions to create one.
  • Permissions to create a VM on the vCenter Server instance by using an .ova template.
  • At least one ESXi host running version 5.5 or later.
  • At least two on-premises VMware VMs, one running a SQL Server database.
  • Permissions to install Azure Migrate agents on each VM.
  • The VMs should have direct internet connectivity.
    • You can restrict internet access to the required URLs.
    • If your VMs don't have internet connectivity, the Azure Log Analytics Gateway must be installed on them, and agent traffic directed through it.
  • The fully qualified domain name (FQDN) of the VM running the SQL Server instance, for database assessment.
  • Windows Firewall running on the SQL Server VM should allow external connections on TCP port 1433 (default). This setup allows Data Migration Assistant to connect.

Assessment overview

Here's how Contoso performs its assessment:

  • Step 1: Download and install Data Migration Assistant. Contoso prepares Data Migration Assistant for assessment of the on-premises SQL Server database.
  • Step 2: Assess the database by using Data Migration Assistant. Contoso runs and analyzes the database assessment.
  • Step 3: Prepare for VM assessment by using Azure Migrate. Contoso sets up on-premises accounts and adjusts VMware settings.
  • Step 4: Discover on-premises VMs by using Azure Migrate. Contoso creates an Azure Migrate collector VM. Then, Contoso runs the collector to discover VMs for assessment.
  • Step 5: Prepare for dependency analysis by using Azure Migrate. Contoso installs Azure Migrate agents on the VMs, so the company can see dependency mapping between VMs.
  • Step 6: Assess the VMs by using Azure Migrate. Contoso checks dependencies, groups the VMs, and runs the assessment. When the assessment is ready, Contoso analyzes the assessment in preparation for migration.


Assessments shouldn't just be limited to using tooling to discover information about your environment. You should also schedule time to speak to business owners, end users, and other members of the IT department to fully understand of what is happening in the environment and understand factors that tooling cannot tell you.

Step 1: Download and install Data Migration Assistant

  1. Contoso downloads Data Migration Assistant from the Microsoft Download Center.
    • Data Migration Assistant can be installed on any machine that can connect to the SQL Server instance. Contoso doesn't need to run it on the SQL Server machine.
    • Data Migration Assistant shouldn't be run on the SQL Server host machine.
  2. Contoso runs the downloaded setup file (DownloadMigrationAssistant.msi) to begin the installation.
  3. On the Finish page, Contoso selects Launch Microsoft Data Migration Assistant before finishing the wizard.

Step 2: Run and analyze the database assessment for SmartHotel360

Now, Contoso can run an assessment to analyze its on-premises SQL Server database for the SmartHotel360 app.

  1. In Data Migration Assistant, Contoso selects New > Assessment, and then gives the assessment a project name.

  2. For Source server type, Contoso selects SQL Server and for Target Server type, Contoso selects SQL Server on Azure Virtual Machines


    Currently, Data Migration Assistant doesn't support assessment for migrating to Azure SQL Managed Instance. As a workaround, Contoso uses SQL Server on an Azure VM as the supposed target for the assessment.

  3. In Select Target Version, Contoso selects SQL Server 2017 as the target version. Contoso needs to select this version because it's the version that's used by the SQL Managed Instance.

  4. Contoso selects reports to help it discover information about compatibility and new features:

    • Compatibility issues note changes that might break migration or that require a minor adjustment before migration. This report keeps Contoso informed about any features currently in use that are deprecated. Issues are organized by compatibility level.
    • New feature recommendation notes new features in the target SQL Server platform that can be used for the database after migration. New feature recommendations are organized under the headings Performance, Security, and Storage.
  5. In Connect to a server, Contoso enters the name of the VM that's running the database and credentials to access it. Contoso selects Trust server certificate to make sure the VM can access SQL Server. Then, Contoso selects Connect.

  6. In Add source, Contoso adds the database it wants to assess, then selects Next to start the assessment.

  7. The assessment is created.

  8. In Review results, Contoso views the assessment results.

Analyze the database assessment

Results are displayed as soon as they're available. If Contoso fixes issues, it must select Restart assessment to rerun the assessment.

  1. In the Compatibility issues report, Contoso checks for any issues at each compatibility level. Compatibility levels map to SQL Server versions as follows:

    • 100: SQL Server 2008/Azure SQL Database
    • 110: SQL Server 2012/Azure SQL Database
    • 120: SQL Server 2014/Azure SQL Database
    • 130: SQL Server 2016/Azure SQL Database
    • 140: SQL Server 2017/Azure SQL Database
  2. In the Feature recommendations report, Contoso views performance, security, and storage features that the assessment recommends after migration. A variety of features are recommended, including In-Memory OLTP, columnstore indexes, Stretch Database, Always Encrypted, dynamic data masking, and transparent data encryption.


    Contoso should enable transparent data encryption for all SQL Server databases. This is even more critical when a database is in the cloud than when it's hosted on-premises. Transparent data encryption should be enabled only after migration. If transparent data encryption is already enabled, Contoso must move the certificate or asymmetric key to the master database of the target server. Learn how to move a transparent data encryption-protected database to another SQL Server instance.

  3. Contoso can export the assessment in JSON or CSV format.


For large-scale assessments:

  • Run multiple assessments concurrently and view the state of the assessments on the All assessments page.
  • Consolidate assessments into a SQL Server database.
  • Consolidate assessments into a Power BI report.

Step 3: Prepare for VM assessment by using Azure Migrate

Contoso needs to create a VMware account that Azure Migrate can use to automatically discover VMs for assessment, verify rights to create a VM, note the ports that need to be opened, and set the statistics settings level.

Set up a VMware account

VM discovery requires a read-only account in vCenter Server that has the following properties:

  • User type: At least a read-only user.
  • Permissions: For the datacenter object, select the Propagate to Child Objects checkbox. For Role, select Read-only.
  • Details: The user is assigned at the datacenter level, with access to all objects in the datacenter.
  • To restrict access, assign the No access role with the Propagate to child object to the child objects (vSphere hosts, data stores, VMs, and networks).

Verify permissions to create a VM

Contoso verifies that it has permissions to create a VM by importing a file in .ova format. Learn how to create and assign a role with privileges.

Verify ports

The Contoso assessment uses dependency mapping. Dependency mapping requires an agent to be installed on VMs that will be assessed. The agent must be able to connect to Azure from TCP port 443 on each VM. Learn about connection requirements.

Step 4: Discover VMs

To discover VMs, Contoso creates an Azure Migrate project. Contoso downloads and sets up the collector VM. Then, Contoso runs the collector to discover its on-premises VMs.

Create a project

Set up a new Azure Migrate project as follows.

  1. In the Azure portal > All services, search for Azure Migrate.

  2. Under Services, select Azure Migrate.

  3. In Overview, under Discover, assess and migrate servers, select Assess and migrate servers.

  4. In Getting started, select Add tools.

  5. In Migrate project, select your Azure subscription, and create a resource group if you don't have one.

  6. In Project Details, specify the project name, and the geography in which you want to create the project. United States, Asia, Europe, Australia, United Kingdom, Canada, India, and Japan are supported.

    • The project geography is used only to store the metadata gathered from on-premises VMs.
    • You can select any target region when you run a migration.
  7. Select Next.

  8. In Select assessment tool, select Azure Migrate: Server Assessment > Next.

  9. In Select migration tool, select Skip adding a migration tool for now > Next.

  10. In Review + add tools, review the settings, then select Add tools.

  11. Wait a few minutes for the Azure Migrate project to deploy. You'll be taken to the project page. If you don't see the project, you can access it from Servers in the Azure Migrate dashboard.

Download the collector appliance

  1. In Migration Goals > Servers > Azure Migrate: Server Assessment, select Discover.

  2. In Discover machines > Are your machines virtualized?, select Yes, with VMware vSphere hypervisor.

  3. Select Download to download the .OVA template file.

Verify the collector appliance

Before deploying the VM, Contoso checks that the OVA file is secure:

  1. On the machine on which the file was downloaded, Contoso opens an administrator Command Prompt window.

  2. Contoso runs the following command to generate the hash for the OVA file:

    C:> CertUtil -HashFile <file_location> [Hashing Algorithm]


    C:> CertUtil -HashFile C:AzureMigrateAzureMigrate.ova SHA256

  3. The generated hash should match the hash values listed in the Verify security section of the Assess VMware VMs for migration tutorial.

Create the collector appliance

Now, Contoso can import the downloaded file to the vCenter Server instance and provision the collector appliance VM:

  1. In the vSphere Client console, Contoso selects File > Deploy OVF template.

  2. In the Deploy OVF Template Wizard, Contoso selects Source, and then specifies the location of the OVA file.

  3. In Name and Location, Contoso specifies a display name for the collector VM. Then, it selects the inventory location in which to host the VM. Contoso also specifies the host or cluster on which to run the collector appliance.

  4. In Storage, Contoso specifies the storage location. In Disk Format, Contoso selects how it wants to provision the storage.

  5. In Network Mapping, Contoso specifies the network in which to connect the collector VM. The network needs internet connectivity to send metadata to Azure.

  6. Contoso reviews the settings, then selects Power on after deployment > Finish. A message that confirms successful completion appears when the appliance is created.

Run the collector to discover VMs

Now, Contoso runs the collector to discover VMs. Currently, the collector currently supports only English (United States) as the operating system language and collector interface language.

  1. In the vSphere Client console, Contoso selects Open Console. Contoso specifies the accepts the licensing terms, and password preferences for the collector VM.

  2. On the desktop, Contoso selects the Microsoft Azure Appliance Configuration Manager shortcut.

  3. In the Azure Migrate Collector, Contoso selects Set up prerequisites. Contoso accepts the license terms and reads the third-party information.

  4. The collector checks that the VM has internet access, that the time is synced, and that the collector service is running. (The collector service is installed by default on the VM.) Contoso also installs the VMware vSphere Virtual Disk Development Kit.


    It's assumed that the VM has direct access to the internet without using a proxy.

  5. Sign in to your Azure account and select the subscription and Migrate project you created earlier. Also enter a name for the appliance so you can identify it in the Azure portal.

  6. In Specify vCenter Server details, Contoso enters the name (FQDN) or IP address of the vCenter Server instance and the read-only credentials used for discovery.

  7. Contoso selects a scope for VM discovery. The collector can discover only VMs that are within the specified scope. The scope can be set to a specific folder, datacenter, or cluster.

  8. The collector will now start to discovery and collect information about the Contoso environment.

Verify VMs in the portal

When collection is finished, Contoso checks that the VMs appear in the portal:

  1. In the Azure Migrate project, Contoso selects Servers servers**. Contoso checks that the VMs that it wants to discover are shown.

  2. Currently, the machines don't have the Azure Migrate agents installed. Contoso must install the agents to view dependencies.

Step 5: Prepare for dependency analysis

To view dependencies between VMs that it wants to assess, Contoso downloads and installs agents on the app VMs. Contoso installs agents on all VMs for its apps, both for Windows and Linux.

Take a snapshot

To keep a copy of the VMs before modifying them, Contoso takes a snapshot before the agents are installed.

Download and install the VM agents

  1. In Machines, Contoso selects the machine. In the Dependencies column, Contoso selects Requires installation.

  2. In the Discover machines pane, Contoso:

    • Downloads the Microsoft Monitoring Agent and the Microsoft Dependency Agent for each Windows VM.
    • Downloads the Microsoft Monitoring Agent and Microsoft Dependency Agent for each Linux VM.
  3. Contoso copies the workspace ID and key. Contoso needs the workspace ID and key when it installs the Microsoft Monitoring Agent.

Install the agents on Windows VMs

Contoso runs the installation on each VM.

Install the MMA on Windows VMs

  1. Contoso double-clicks the downloaded agent.

  2. In Destination Folder, Contoso keeps the default installation folder, and selects Next.

  3. In Agent Setup Options, Contoso selects Connect the agent to Azure Log Analytics > Next.

  4. In Azure Log Analytics, Contoso pastes the workspace ID and key that it copied from the portal.

  5. In Ready to Install, Contoso installs the MMA.

Install the Microsoft Dependency Agent on Windows VMs

  1. Contoso double-clicks the downloaded agent.

  2. Contoso accepts the license terms and waits for the installation to finish.

Install the agents on Linux VMs

Contoso runs the installation on each VM.

Install the MMA on Linux VMs

  1. Contoso installs the Python ctypes library on each VM by using the following command:

    sudo apt-get install python-ctypeslib

  2. Contoso must run the command to install the MMA agent as root. To become root, Contoso runs the following command, and then enters the root password:

    sudo -i

  3. Contoso installs the MMA:

    • Contoso enters the workspace ID and key in the command.

    • Commands are for 64-bit.

    • The workspace ID and primary key are located in the Log Analytics workspace in the Azure portal. Select Settings, and select the Connected Sources tab.

    • Run the following commands to download the Log Analytics agent, validate the checksum, and install and onboard the agent:

      wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh && sh onboard_agent.sh -w 6b7fcaff-7efb-4356-ae06-516cacf5e25d -s k7gAMAw5Bk8pFVUTZKmk2lG4eUciswzWfYLDTxGcD8pcyc4oT8c6ZRgsMy3MmsQSHuSOcmBUsCjoRiG2x9A8Mg

Install the Microsoft Dependency Agent on Linux VMs

After the Microsoft Monitoring Agent is installed, Contoso installs the Microsoft Dependency Agent on the Linux VMs:

  1. The Microsoft Dependency Agent is installed on Linux computers by using InstallDependencyAgent-Linux64.bin, a shell script that has a self-extracting binary. Contoso runs the file by using sh, or it adds execute permissions to the file itself.

  2. Contoso installs the Linux dependency agent as root:

    wget --content-disposition https://aka.ms/dependencyagentlinux -O InstallDependencyAgent-Linux64.bin && sudo sh InstallDependencyAgent-Linux64.bin -s

Step 6: Run and analyze the VM assessment

Contoso can now verify machine dependencies and create a group. Then, it runs the assessment for the group.

Verify dependencies and create a group

  1. To determine which machines to analyze, Contoso selects View Dependencies.

  2. For SQLVM, the dependency map shows the following details:

    • Process groups or processes that have active network connections running on SQLVM during the specified time period (an hour, by default).
    • Inbound (client) and outbound (server) TCP connections to and from all dependent machines.
    • Dependent machines that have the Azure Migrate agents installed are shown as separate boxes.
    • Machines that don't have the agents installed show port and IP address information.
  3. For machines that have the agent installed (WEBVM), Contoso selects the machine box to view more information. The information includes the FQDN, operating system, and MAC address.

  4. Contoso selects the VMs to add to the group (SQLVM and WEBVM). Contoso holds the Ctrl key while selecting multiple VMs.

  5. Contoso selects Create Group, and then enters a name (smarthotelapp).


    To view more granular dependencies, you can expand the time range. You can select a specific duration or select start and end dates.

Run an assessment

  1. In Groups, Contoso opens the group (smarthotelapp), then selects Create assessment.

  2. To view the assessment, Contoso selects Manage > Assessments.

Contoso Data Download

Contoso uses the default assessment settings, but you can customize settings.

Analyze the VM assessment

An Azure Migrate assessment includes information about the compatibility of on-premises with Azure, suggested right-sizing for Azure VM, and estimated monthly Azure costs.

Review confidence rating

An assessment has a confidence rating of from 1 star to 5 stars (1 star is the lowest and 5 stars is the highest).

  • The confidence rating is assigned to an assessment based on the availability of data points that are needed to compute the assessment.

  • The rating helps you estimate the reliability of the size recommendations that are provided by Azure Migrate.

  • The confidence rating is useful when you are doing performance-based sizing. Azure Migrate might not have enough data points for utilization-based sizing. For as on-premises sizing, the confidence rating is always 5 stars because Azure Migrate has all the data points it needs to size the VM.

  • Depending on the percentage of data points available, the confidence rating for the assessment is provided:

    Availability of data pointsConfidence rating
    0%-20%1 star
    21%-40%2 stars
    41%-60%3 stars
    61%-80%4 stars
    81%-100%5 stars

Verify Azure readiness

The assessment report shows the information that's summarized in the table. To show performance-based sizing, Azure Migrate needs the following information. If the information can't be collected, sizing assessment might not be accurate.

  • Utilization data for CPU and memory.
  • Read/write IOPS and throughput for each disk attached to the VM.
  • Network in/out information for each network adapter attached to the VM.
Azure VM readinessIndicates whether the VM is ready for migration.Possible states:
  • Ready for Azure
  • Ready with conditions
  • Not ready for Azure
  • Readiness unknown
    If a VM isn't ready, Azure Migrate shows some remediation steps.
  • Azure VM sizeFor ready VMs, Azure Migrate provides an Azure VM size recommendation.Sizing recommendation depends on assessment properties:
  • If you used performance-based sizing, then sizing considers the performance history of the VMs.
  • If you used as on-premises sizing, then sizing is based on the on-premises VM size and utilization.
  • Data isn't used.
  • Suggested toolBecause Azure machines are running the agents, Azure Migrate looks at the processes that are running inside the machine. It identifies whether the machine is a database machine.
    VM informationThe report shows settings for the on-premises VM, including operating system, boot type, and disk and storage information.

    Review monthly cost estimates

    This view shows the total compute and storage cost of running the VMs in Azure. It also shows details for each machine.

    • Cost estimates are calculated by using the size recommendations for a machine.
    • Estimated monthly costs for compute and storage are aggregated for all VMs in the group.

    Clean up after assessment

    • When the assessment finishes, Contoso retains the Azure Migrate appliance to use in future evaluations.
    • Contoso turns off the VMware VM. Contoso will use it again when it evaluates additional VMs.
    • Contoso keeps the Contoso Migration project in Azure. The project currently is deployed in the ContosoFailoverRG resource group in the East US Azure region.
    • The collector VM has a 180-day evaluation license. If this limit expires, Contoso will need to download the collector and set it up again.

    Contoso Data Download Torrent


    In this scenario, Contoso assesses its SmartHotel360 app database by using the Data Migration Assistant tool. It assesses the on-premises VMs by using the Azure Migrate service. Contoso reviews the assessments to make sure that on-premises resources are ready for migration to Azure.

    Next steps

    Contoso Access Database Download

    After Contoso assesses this workload as a potential migration candidate, it can begin preparing its on-premises infrastructure and its Azure infrastructure for migration. See the deploy Azure infrastructure article in the Cloud Adoption Framework migrate best practices section for an example of how Contoso performs these processes.