Deploy workloads and assets (infrastructure, apps, and data)

In this phase of the journey, you use the output of the assessment phase to initiate the migration of the environment. This guide helps identify the appropriate tools to reach a completed state. You'll explore native tools, third-party tools, and project management tools.

The following sections describe the native Azure tools available to perform or assist with migration. For information on choosing the right tools to support your migration efforts, see the Cloud Adoption Framework's migration tools decision guide.

Azure Migrate

Azure Migrate delivers a unified and extensible migration experience. Azure Migrate provides a one-stop, dedicated experience to track your migration journey across the phases of assessment and migration to Azure. It provides you the option to use the tools of your choice and track the progress of migration across these tools.

Azure Migrate is a centralized hub to assess and migrate on-premises servers, infrastructure, applications, and data to Azure. It provides the following functionality:

  • Unified platform with assessment, migration, and progress tracking.
  • Enhanced assessment and migration capabilities:
    • Assess on-premises servers including SQL Server instances and migrate them to Azure virtual machines or Azure VMware Solution (AVS) (Preview).
    • Agentless migration of VMware virtual machines to Azure.
    • Assess on-premises databases and migrate them to Azure SQL Database or to SQL Managed Instance.
    • Assess on-premises web applications and migrate them to Azure App Service by using the Azure App Service Migration Assistant.
    • Assess your on-premises virtual desktop infrastructure (VDI) and migrate it to Windows Virtual Desktop in Azure.
    • Migrate large amounts of data to Azure quickly and cost-effectively using Azure Data Box products.
  • Extensible approach with ISV integration (such as Cloudamize).

To perform a migration using Azure Migrate, follow these steps:

  1. Search for Azure Migrate under All services. Select Azure Migrate to continue.
    1. In Overview, select Discover, assess and migrate.
  2. Select Add tools.
  3. In Project, select your Azure subscription, then create a resource group if you don't have one.
  4. In Project Details, specify the project name and geography where you want to create the project, then select Create.
  5. After creating the project, tools are visible in project and user can start with Discovery.


For guidance specific to your scenario refer to the tutorials and Azure Migrate documentation.

Learn more

Azure Database Migration Service

Azure Database Migration Service is a fully managed service that enables seamless migrations from multiple database sources to Azure data platforms, with minimal downtime (online migrations). Database Migration Service performs all of the required steps. You can initiate your migration projects assured that the process takes advantage of best practices recommended by Microsoft.

Create an Azure Database Migration Service instance

If this is the first time using Azure Database Migration Service, you need to register the resource provider for your Azure subscription:

  1. Select All services > Subscriptions, and choose the target subscription.
  2. Select Resource providers.
  3. Search for migration, and then to the right of Microsoft.DataMigration, select Register.

After you register the resource provider, you can create an instance of Azure Database Migration Service.

  1. Select + Create a resource and search the marketplace for Azure Database Migration Service.
  2. Complete the Create Migration Service wizard, then select Create.

The service is now ready to migrate the supported source databases to target platforms such as SQL Server, MySQL, PostgreSQL, or MongoDB.

Azure App Service Migration Assistant

The Azure App Service Migration Assistant is part of a larger suite of applications that help organizations with their transition to the cloud. The Migration Assistant provides a guided, wizard-like user experience that performs two tasks:

  1. It performs an assessment of a specific web app installed on Windows Server by running pre-migration compatibility checks on the web app to determine whether a migration to Azure App Service is possible without modification to the web app.
  2. If the assessment proves that the web app can be migrated, the Migration Assistant performs the migration. You'll need to give the Migration Assistant access to your Azure account, select which resource group you want to use, and select a name for the web app, among other details.

Alternatively, the Migration Assistant generates an Azure Resource Manager template that you can use to migrate the web application in a more automated and repeatable way.

Migrate a web app to Azure App Service

The Migration Assistant begins the migration process by collecting key details from you about your Azure account and then performs the migration.

First, you'll sign in to your Azure account and associate your Migration Assistant session with your account by using a unique code. Next, you'll choose the subscription, the resource group, and the website's domain name. You can choose to create a new Azure App Service plan to host the web app or select an existing plan. The choice affects the geographical region from which your web app is hosted. You'll also have a chance to associate this migration effort with an existing Azure Migrate project. Finally, you can either choose to skip database setup or choose to set up a hybrid connection to enable a database connection.

After the Migration Assistant collects and verifies your selections, it creates the needed Azure App Service resources in the selected region and resource group. It zips up the web app's source files and uses the Azure App Service deployment API to deploy them. Finally, it performs optional migration steps, like helping you set up a hybrid connection.

After a successful migration, you'll need to perform any post-migration tasks. These might include:

  • Manually moving application settings and connection strings in your web.config file to Azure App Service.
  • Migrating data from an on-premises SQL Server instance to an Azure SQL Database instance.
  • Setting up an SSL certificate.
  • Setting up custom domain names.
  • Setting up permissions in Azure Active Directory.

You might also decide to change the Azure App Service hosting plan and other settings like autoscaling and deployment slots.

For more information, see:

Migrate ASP.NET applications to Azure

Data Migration Assistant

Data Migration Assistant (DMA) helps you upgrade to a modern data platform by detecting compatibility issues that can affect database functionality in your new version of SQL Server or Azure SQL Database. DMA recommends performance and reliability improvements for your target environment and allows you to move your schema, data, and uncontained objects from your source server to your target server.

Data Migration Assistant is integrated with Azure Migrate, allowing you to track all assessment progress in the Azure Migrate dashboard. Launch DMA from Azure Migrate by adding the Azure Migrate: database assessment tool, and add your database assessment to Azure Migrate by selecting the Upload to Azure Migrate button in DMA.


For large migrations (in terms of number and size of databases), we recommend that you use Azure Database Migration Service, which can migrate databases at scale.

Start using Data Migration Assistant with these steps:

  1. Download and install Data Migration Assistant from the Microsoft download center.
  2. Create an assessment by selecting the New (+) icon, then select the Assessment project type.
  3. Set the source and target server type, then select Create.
  4. Configure the assessment options as required (recommend all defaults).
  5. Add the databases to assess.
  6. Select Next to start the assessment.
  7. View results in Data Migration Assistant.

For an enterprise, we recommend following the approach outlined in Assess an enterprise and consolidate assessment reports with DMA to assess multiple servers, combine the reports, and then use provided Power BI reports to analyze the results.

For more information, including detailed usage steps, see:

SQL Server Migration Assistant

Microsoft SQL Server Migration Assistant (SSMA) is a tool designed to automate database migration to SQL Server from Microsoft access, DB2, MySQL, Oracle, and SAP ASE. The general concept is to collect, assess, and then review with these tools, however, due to the variances in the process for each of the source systems we recommend reviewing the detailed SQL Server Migration Assistant documentation.

For more information, see:

Database Experimentation Assistant

Database Experimentation Assistant (DEA) is a new A/B testing solution for SQL Server upgrades. It will assist in evaluating a targeted version of SQL for a given workload. Customers who are upgrading from previous SQL Server versions (SQL Server 2005 and above) to any new version of the SQL Server can use these analysis metrics.

The Database Experimentation Assistant contains the following workflow activities:

  • Capture: The first step of SQL Server a/B testing is to capture a trace on your source server. The source server usually is the production server.
  • Replay: The second step of SQL Server a/B testing is to replay the trace file that was captured to your target servers. Then, collect extensive traces from the replays for analysis.
  • Analysis: The final step is to generate an analysis report by using the replay traces. The analysis report can help you gain insight about the performance implications of the proposed change.

For more information, see:

Azure Cosmos DB data migration tool

Azure Cosmos DB data migration tool can import data from various sources into Azure Cosmos DB collections and tables. You can import from JSON files, CSV files, SQL, MongoDB, Azure Table Storage, Amazon DynamoDB, and even Azure Cosmos DB SQL API collections. The data migration tool can also be used when migrating from a single partition collection to a multipartition collection for the SQL API.

For more information, see: