Migrating a .NET app to Azure

I want to move my web application to Azure, where do I start ?

So you currently have a web application running on an on premise server and are looking to migrate it to the cloud, as the current infrastructure no longer meets the application needs. Users have reported occurrences of the site being unavailable and slow at peak times.

This post is the start of a 4 part case study of migrating a .NET web application to azure and is aimed at helping to provide some insight into deciding which is the most suitable Azure compute service available.

Once you start to drill into whats involved in migrating an application, it is very easy to get swamped with all the possible options and routes and trying to understand it all before you can make a decision on how best to move forward at all.

There is no one solution fits all, it depends on many factors some of which are:

  • The current architecture of the application
  • Potentially what development resources are available
  • Cost and time constraints  

So I am going to walk-through a sample web application and investigate several options that are potentially suitable for the migration. To start the migration process, we need to analyse the current application and also establish what the requirements are from the migration.

Current Application


  • ASP .NET web app 
  • IIS 7 on standalone windows server
  • Stores files uploaded by users locally
  • Manages data via a publicly available API

Migration Requirements


  • High availability
  • Automatically scale
  • Minimal maintenance overhead
  • Low Cost

So now we know what we want from the migration, we can analyse some of the various options available

  1. Azure App Service (Migrating .NET web application to Azure App Service)
  2. Azure Scale Set (Migrating .NET web application to Azure Scale Sets)
  3. Azure VMs (Migrating web application to Azure VM)
  4. Azure Functions (Re-Architecting the Application)

The aim of these posts are not to go into depth on each element and all possible options, but to more give an introductory overview as to how you might begin to start thinking about how your application might fit in for migration and to kick start the thought process

Summary

All of the above options have their own benefits and reasons behind choosing them. The decision will depend on your particular needs and resources available for the migration process. Its possible to just pick a single approach or alternatively to pick and choose components. As an example one hybrid approach would be to leave certain components on prem (e.g database) and move other components to the cloud.

Existing

.NET Application (on- premise)


ASP.NET Apps

Web API 


Lift & Shift

(IaaS) Cloud Infrastructure- Ready


Virtual Machines

Scale Sets


Cloud-Optimized

Full PaaS


Azure App Service

Azure Functions


  • Difficulty scaling resources
  • High costs
  • Harder to achieve the level of flexibility and scalability quickly
  • Quick way of migrating to the cloud
  • No code changes
  • Makes the process easier to modernize the applications at a later stage
  • Very little is managed (manual OS patching etc..)
  • Cost savings
  • Requires code changes and re-architecting specifically for the cloud
  • Full Managed
  • Provides availability and scalability
  • Cost savings

 

Microsoft have a good e-book available that, in my opinion, is worth a read in relation to this topic (Modernize existing .NET applications with Azure Cloud )

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *