Planning The Migration Of Application To Azure PaaS

Many organizations are planning to migrate their existing workload to Azure to achieve performance, scaling, the flexibility of resource consumption, and Pay-as-you-go plans. Let us see how to plan the migration of workloads to Azure PaaS.

There are a lot of benefits to moving the applications to Azure PaaS. Due to the lack of knowledge and a lack of proper planning, many organizations are not able to move their applications to Azure. I will try to create a framework/approach which will help your organization to migrate their applications to Azure PaaS.

Migration plan to Azrue PAAS 

Step 1 - Baseline Analysis


Before starting any migration activity or planning, first, create a list of all the components and dependencies of the existing application. This list will help you to identify the items requiring changes before moving to Azure.

You can use the below list as a starting point.

  1. The technology used for Web Portal - ASP.NET, Java etc.
  2. Current Session Management technique- in memory of web server or state server or database server
  3. Any Web API project associated with the web application
  4. Database used on the web portal - SQL Server, MySQL or any other
  5. User authentication technique (On-premises Active Directory)
  6. Integration with any other on-premises application
  7. Windows Service, Background job, or Scheduler
  8. MSMQ or any message queue
  9. If the application is having document/files/image upload functionality
  10. Any third party executable used in your application to achieve a specific task
  11. Any custom installation required on the web server
  12. SMTP Server configured for sending an email

Step 2 - Migration Plan

ComponentAzure ServiceRemarks
Web PortalAzure Web AppSupports Auto-Scaling
Session ManagementRedis cache or SQL ServerIn memory session storage is not supported if you have multiple web server instances running.
Web APIAzure API App
DatabaseAzure SQLYou can choose higher or lower capacity or performance on the fly
User AuthenticationAzure Active Directory or on premises ADFS
IntegrationOn Premises Data GatewayIf other applications are available on the internet, you can directly connect via Azure Function, Logic App, or even from the Web App. If it is on-premises application, you can have on-premises gateway or site-to-site connectivity. If other applications are directly connecting with your database, then you can allow those servers' IP Addresses in Azure SQL database firewall.
Windows Service or Background JobWeb Job, Azure Function or Batch JobBased on your specific need, you can select any one of the lists. I personally found Azure Functions very promising and easy to develop. Azure Functions has in-built capability to integrate with Event Hub, Service Bus, Cosmos DB etc. which is helpful in integration scenarios.
Message QueueEvent Hub, Service Bus or Storage QueueChoose based on your application's need.
Document or file uploadAzure Blob Storage
SMTP for Sending EmailAzure SendGridIf you have an existing Office 365 account for sending emails, you can use the same in Azure.
Third party EXE or Custom installation or configuration required on web serverAzure VMCustomization of environment or installation of third-party EXE files is not supported by Azure PaaS;  you need to choose an Azure VM for those type of components.

Step 3 - Execution of Migration

If you have completed the above two steps carefully, it will cover 30% of your job. For the rest, you need to select migrating the application based on the plan and testing it. 

If you have multiple applications to be migrated on Azure PaaS, I would recommend to migrate those one by one. It will help you to reuse the existing application migration knowledge and components to be used in another applications.

Let me know if you have any query or need any help to migrate your applications on Azure PaaS. All the best for your Azure journey.