top of page
  • Writer's picturePrajeesh Prathap

Migrating from on-premise to Microsoft Azure (approach, design & implementation) - Part 3 of 5

Refactor

This adoption model involves with making small changes to your application, databases etc. so that you can leverage services like Azure SQL Database Managed Instances and Azure Container Service. You can also leverage Azure’s App Service, Azure Functions and Logic Apps to help re-architect, refactor and rebuild your apps in Azure. Often referred to as "repackaging," refactoring requires minimal changes to apps, so that they can connect to Azure PaaS, and use cloud offerings.


Refactoring is the preferred option when:

  • Your application can easily be repackaged to work in Azure with some changes in the configuration, startup code etc.

  • There is a need to modernize or improve the infrastructure

  • Leverage the Azure features while keeping costs down.

  • Provide better code portability and code reuse

  • Introduce better development practices like Continuous Integration, Continuous Delivery, DevOps etc.

Before choosing this approach its very important to have a through code review to see if the code can be easily changed to move the application to a PaaS service model. All application dependencies, networking infrastructure requirements, data transfer protocols etc. should be analyzed before starting the work on refactoring.

Most of the cases needs a Site-Site VPN or Express Route configuration to leverage on-premise resources functionality over cloud.



For e.g. you may first move the web service running in an on-premise VM to an app service in Azure with a Express Route connection allowing the service to connect to the database server running on-prem. The app service code and deployment will be moved into an Azure DevOps project with repositories and pipelines configured for continuously integrating and delivering the latest functionality to Azure. Once this setup is working, then you can make use of the Database Migration tool to move the database on-prem to SQL Azure and update the connections.


The pros of using this approach are:

  • Faster than re-architecture and relatively easy to migrate as code changes are minimal

  • Improved infrastructure leveraging PaaS benefits

  • Reduced costs and improved security

  • Improved development process and easy to adopt practices like Continuous Integration, DevOps etc.

The cons of using this approach are:

  • Cannot make major architectural changes—for example, splitting the application into microservices, which allows substantial efficiencies in the cloud.


 

References:


85 views0 comments

Comments


bottom of page