With the advent of cloud computing, many individuals and enterprises are worried about deploying their physical projects onto Azure. Not just physical projects, migrating projects from platforms onto Azure is definitely a major concern for those who want to shift. Shifting to Azure clearly has its benefits – multiple instances, auto-scaling, continuous monitoring, cost-effectiveness etc. However, most applications aren’t always 100% compatible with Azure. Shifting to the cloud however means there are several aspects of the application architecture that need to be considered such as application compatibility, and database compatibility. Since Azure is an application platform, it’s important to understand the various types of applications suited to Azure, i.e. although an existing project might be built with native code, it must be packaged as per Azure before deploying it to the cloud. Database compatibility could also be an issue. If an existing application has an SQL server database, it must first be migrated into an SQL Azure database so that the database can be read by the app. Clearly, there are a few steps that need to be taken in order to import an existing project onto the Azure platform. We will first try and give an example of this by demonstrating in basic steps how an ASP .NET application with an SQL database could be imported into Azure. Then, we’ll talk about Microsoft Migration Accelerator – a project that simplifies this entire process making importing existing application across various platforms, a breeze.
Migrating an ASP .NET App to run on Azure
Prerequisites:
1) Download and install the Windows Azure Tools for Visual Studio.
2) Download and install the Windows Azure SDK.
3) Download SQLAzureMW (Migration Wizard).
4) Set up and login to a Windows Azure services account.
5) And of course, ensure that you back-up all your existing app code and data. There’s no such thing as being too careful.
Modifying your existing ASP .NET app to run on the Azure platform primarily starts with creating a new Azure project into which the code can be migrated. Then the code needs to be altered to work in the cloud rather than on a local web server.
Add a cloud project to the existing solution. With visual Studio running, go to File>New Project>Visual C#>Cloud>Windows Azure Project
Name the project, set location, choose solution name and click OK. Visual Studio will then generate your new project.
Add the web project as web role to the cloud project,
To add the existing project to the new solution, go to File>Add>Existing Project and select the .csproj file for the web application project you want to migrate and click open. Then right click the Roles folder under the cloud project, and choose Add>Web Role Project in Solution and choose your web application project in the dialogue box that opens.
Running the application now will pop up an error as we you’ll need to add a reference to the Windows Azure service runtime to your Web Application project. Go to Existing Item>Add>Reference and once the Add Reference dialogue box appears, go the .NET tab and select Microsoft.WindowsAzure.ServiceRuntime.
Now, the application will run. But will it run on the cloud? No. Because the database isn’t compatible with SQL Azure yet.
It’s important to check the size of your database and how it fits within the database allowances used by SQL Azure. Currently, Azure offers Web editions in 1GB and 5GB sizes, and business variants in 10, 20, 30,40 and 50GB sizes. This means that you need to make sure your database isn’t larger than 50GB, and if it is – see if it can be broken down into smaller databases.
SQL Migration Wizard lets you easily migrate existing SQL databases into SQL Azure databases.
The wizard makes simple a process that otherwise would take up another 4-5 steps at least. Just follow the instructions!
You will need to change the connectionstrings in the project. There is a connection string for the database and a connection string for the ASP providers, and once that is done, the application is then cloud compliant and can then be deployed.
So the generic process to migrate to Azure could be laid down as the following steps:
1) Verify the application is running correctly in the development environment.
2) Convert the application into a Web role project.
3) Validate that the application runs on the local development fabric.
4) Migrate the SQL database to SQL Azure using the SQL Azure Migration Wizard.
5) Update the local application to work with SQL Azure database. Basically, change the connection string.
6) Package up the Web Role and deploy it to Azure.
Microsoft Migration Accelerator
Microsoft has also announced a project called the Migration Accelerator (MA) which is designed seamlessly as an end to end solution that migrates workloads into Azure. Offered a preview currently, MA requires near zero downtime and cuts down the time taken to migrate into Azure to as little as minutes. It supports all major platforms and operating systems including AWS, VMware, Hyper-V and physical servers. It automates all the critical processes required to migrate a workload within an enterprise into Azure cloud.
1) First setup network mapping between source Enterprise server and Azure.
2) Follow installation instructions listed in HELP under Install and Configuration>Create and Install Components in Azure.
3) Follow installation instruction listed in HELP under Install and Configuration>Create and Install Master Target on Windows.
4) Follow installation instruction listed in HELP under Install and Configuration>Create and Install Components in Source Enterprise.
5) Follow installation instruction listed in HELP under Install and Configuration>Register your MA Account to Azure Account.
Once you’re done registering, the product is installed and configured for you to be able to start migrating workloads from the likes of AWS or VMware.