Cloud migration approach
More than ever before, organizations are rethinking their datacenter strategy and heavily embracing and integrating the public cloud in their long-term IT strategy. Two key factors that are motivating this wave are cloud scalability and cutting down on capital investments. One of the starting points to make this public cloud migration successful is knowing what is supported in the public cloud from a workload perspective and knowing what your current IT landscape looks like. The better the match between these two, the easier your cloud migration will be.
Assessing your organization's cloud readiness
This first section is focused on assessing your on-premises datacenter(s) and determining what workloads, virtual machines, networking, storage, applications, and data solutions you have. You'll need to think about which ones you want to migrate to the public cloud and how to migrate them with the shortest downtime possible and lowest impact on the business. A successful migration relies on using tools to make the job easier. We'll look at several tools available from Microsoft that help in this process. We'll also go through identifying and estimating the cost aspect of the migration, and more specifically, what the running consumption cost could look like once the workload is running in Azure.
Assessment tooling
Helping its customers to perform an easy, or at least less complex, migration to Azure is one of Microsoft's key objectives. The easier (meaning less disruptive for the business) a migration is, the more success the cloud will see. Besides the excellent documentation on all things Azure at https://bit.ly/30kWG7B, you should have a look at the Azure Migration Center: https://bit.ly/384cHRN.
The Azure Migration Center breaks down the phases that you will need to run through in migrating to the cloud. The first of these is the assessment phase. This should always be the first phase of your broader migration project. Know what you have today to find out what you can run tomorrow.
Today, you can choose from the following free Microsoft assessment tools:
- Azure Migrate: Performs an assessment of virtual machine-based workloads
- Azure Data Migration Assistant: Runs an assessment for SQL Server databases, helping in migrating to Azure SQL virtual machines or Azure SQL databases
- Azure Database Migration Service: While not specifically an assessment tool, it helps in migrating from different data solutions on-premises to alternatives in Azure PaaS
- App Service Migration Assistant: Performs a scan of any application endpoint, supporting multiple languages and platforms (such as Java, .NET, Node.js, and PHP)
There is some overlap between assessment and migration for most of these tools, but let me spend some time on each, highlighting the core benefits and reasoning for checking them out.
Azure Migrate
Azure Migrate is the primary tool for running your workload migrations to Azure. It provides a full integration from assessment to migration and follow-up. The key strength of Azure Migrate is that it helps organizations in getting a detailed view on what their existing datacenter virtual machines look like from a characteristics perspective (CPU, memory, and disks), what operating system they are running, and most importantly, if they are supported for migration to Azure. Supporting both VMware and Hyper-V and up to 35,000 source machines (10,000 for Hyper-V environments), it is a viable tool for organizations of all sizes that want to validate migrating their virtual machines to Azure using a lift and shift approach.
Once Azure Migrate has a good view on the source virtual machine, it analyzes the gathered information and maps it with Azure. First of all, it identifies whether the virtual machine is compatible with the Azure virtual machine requirements (whether the operating system is supported, and so on), and it recommends an Azure virtual machine sizing. Lastly, it provides a monthly cost estimate for running that virtual machine as-is in Azure, presented in clear and easy-to-understand dashboard views (Figure 1).
Figure 1: Azure Migrate – Assessment details
Another interesting feature is dependency visualization, where Azure Migrate will identify an application or other dependencies between virtual machines to smooth out the actual migration. Think of an application server having connectivity with a database server. It wouldn't help your migration if the application server was migrated over but the database server was not. Keep in mind that dependency visualization requires the installation of an agent, though (which might not be accepted by all organizations, especially when the decision to actually perform the migration to Azure has not been 100% confirmed).
VMware infrastructure assessment
In the case of an existing VMware infrastructure, where having vCenter is a dependency, you should deploy an Azure Migrate appliance that runs next to the existing virtual machines on VMware. To speed up this deployment, there is an OVA template available for download (around 15 GB), allowing you to deploy as an OVF template directly from within your VMware vSphere client and easing the installation of this appliance. This appliance performs a discovery, which can be scoped at vCenter datacenters, clusters, specific hosts, or select virtual machines. Once the discovery is complete, you will manage most of the assessment output back in the Azure Migrate project in the Azure portal, based on the metadata information sent from the appliance back to Azure Migrate.
Hyper-V infrastructure assessment
If you are using Hyper-V in your datacenter today, you can rely on Azure Migrate for the assessment and discovery. You start from downloading a Hyper-V VHD file (around 10 GB) and then configure it as a new Hyper-V virtual machine. Similar to the VMware scenario, this discovery appliance is responsible for gathering all necessary information from your on-premises infrastructure for the machines you define. It allows for a selective assessment based on Hyper-V hosts or individual virtual machines.
Physical and other cloud infrastructure assessment
With the latest version of Azure Migrate, Migrate not only assists in Hyper-V-based assessment but now also supports physical machines and other cloud providers (such as AWS and GCP) as a source. Similar to VMware or Hyper-V, the magic part is the replication appliance, starting from a Windows Server 2016 instance that you need to prepare.
Besides using the native Microsoft tools, know that the new Azure Migrate works directly with several vendors, offering third-party assessment and migration tools for different workloads. These are sometimes generic and sometimes support a single solution, but they are nicely integrated into the same Azure Migrate service today.
More information on what partners and tools are available can be found at the Azure Migration Center home page:
https://azure.microsoft.com/en-us/pricing/details/azure-migrate/
Azure Data Migration Assistant
If you have on-premises SQL Server-based data solutions running on physical or virtual servers, you can migrate them using the previously described approach, assuming the virtual machines are compatible with Azure virtual machine requirements. Though maybe you don't need to perform a lift and shift migration to Azure virtual machines, as your databases might qualify for running as Azure SQL instances. To find out, the easiest approach is to run an assessment using the Azure Data Migration Assistant (DMA) (Figure 2).
The assessment process could not be easier:
- You run the tool in your on-premises environment, directly on the SQL Server machine you want to assess, or on a remote machine (for example, the SQL database administrator's workstation).
- Once the tool is installed, you go through an assessment wizard, where you can specify the source (SQL Server) and target (Azure SQL Database).
- After clicking on the Start Assessment option, the process begins analyzing your source database and usually completes doing so in minutes. The results are shown within the tool and can be exported as well. From an assessment perspective, it scans for two domains:
- SQL Server feature parity: This is where you can review details about unsupported features and partially unsupported features, once your database runs in Azure SQL. One example I found out as a customer was the search index feature.
- Compatibility issues: This is the second check that happens. If any issues should be detected, they will be listed here as a blocking factor for the migration:
Figure 2: DMA – Assessment
Azure Database Migration Service
If, outside of SQL Server data solutions, you are running other databases in your on-premises datacenter, know that Azure offers another tool to assist you in getting them migrated over to Azure as well. This tool allows for smooth migrations from several different database sources to Azure data solutions. Typical uses cases here are:
- Migrating from PostgreSQL to Azure Database for PostgreSQL
- Migrating from Oracle Database to Azure Database for PostgreSQL
- Migrating from MongoDB to Azure Cosmos DB
- Migrating from MySQL to Azure Database for MySQL
So, typically, migration from an infrastructure virtual machine architecture to Azure PaaS, offers easy-to-follow wizards to help you in this process (Figure 3).
Note that this tool allows for both offline and online migration scenarios:
Figure 3: Azure Database Migration Service
App Service Migration Assistant
The App Service Migration Assistant is an updated version of the former Movemetothecloud.net tool. As the name suggests, the core functionality of this free Microsoft tool is helping in migrating your (web) applications to Azure Web Apps.
Besides performing the actual application migration, the other important capability is performing an assessment prior to the actual migration. The assessment starts by connecting to a public endpoint, or connecting to an internal web server, which gets scanned for several details of web server technologies to identify any migration issues, such as:
- Port bindings (since Azure only supports 80/443 for port bindings)
- Protocols (HTTP and HTTPS)
- Certificates (checks whether the site uses certificates, and self-signed or public CA)
- Dependencies in the
applicationhost.config
file - Application pools
- Authentication type
- Connection strings
From a web server platform and language perspective, it supports a lot more than Windows Server IIS/.NET-based applications, such as:
- Ruby
- Node.js
- Java
- PHP
The outcome of the assessment and inventory is presented in a detailed web form, which can be exported for documentation purposes (Figure 4):
Figure 4: Azure App Service Migration assessment
Section summary
This section provided an introduction and description of the Microsoft application migration framework, by positioning and describing several Microsoft tools available to assist in the assessment process.
In the next section, the topic of identity and access control will be explained, as another important aspect to take into consideration before/during performing a cloud migration to Azure.