case study

Migrating ASP.NET Webforms to Microsoft Azure Case Study

How we migrate the platform from Webforms to Azure

Cloud Migration
Question

Is it possible to move a platform written on Webforms in 2009 to the cloud with only slight changes?

If you ever wondered about it, this case will be super useful for you, as together with our clients we passed this way and have lots insights to share.

About the Client

Our client is a scalable clinical trials database registry. It helps pharma companies and clinics, where new medicines are tested, prevent duplicate subjects, reduce protocol violations, reduce placebo rates, and improve safety.

The web application consists of a biometric system to authorize and track volunteers, the database where those records are stored, and custom solution for clinics to add new volunteers and check if existing ones are available for trials.

The Challenges
We Faced in
This Project

It is said that cloud computing
is a Klondike for any entrepreneur who
owns a software product with outdated technology. But as you
know the way to this place isn’t easy,
especially if we talk about moving
legacy system to the cloud. Let’s see
what challenges our team faced
throughout this project

WE HAD THREE
MAIN CHALLENGES

System environment parameters

The whole system environment parameters were written to work on particular hardware, so moving it to the cloud as it is could break the whole system and threaten the security.

Database compatibility

The MS SQL database used in the solution wasn’t compatible with Azure SQL, so we had to upgrade it, and perform plenty of fixes.

Unsupported parts

Azure Firewall was incompatible with the current solution, as it recognized several harmless requests as vulnerable, that could stop the whole system work.

The more we dived into the project, the more curious challenges arose, so keep reading.

Planning and Preparation Stage

Let’s start from the very beginning, when our team familiarized the project for the first time. Even though the task seemed easy, we knew that migrating Webforms to Azure may require additional work. So, we decided to set up what should be done first.

If you use third-party tools in your current legacy application check their compatibility with cloud platform you are going to use, and, of course, check their versions and update them if needed. Otherwise, they may not work properly that could endanger data continuity.
orange

System Prior Architecture

Building a Development Environment in the Cloud

In short, the initial system consisted of the MS SQL database, web server where the web portal was hosted through the IIS connection, and the biometric service server.

All these application parts were written to be hosted on-premise, so we had to carefully prepare cloud environment before migration, as well as rewrite some app parts.

Development Process

000

We started with acquiring and configuring Azure Virtual Machines (VM) with Visual Studio

001

Then we copied system’s APIs to VMs, but the biometric matching service didn’t work

010

We refactored it and switched biometric API to use load balancing

100

Made a few more modifications to adjust it to Azure environment environment

After, we tested Azure Dev with Azure App Service, and found and resolved even more curious issues we are going to discuss further in this case. But for now, check out how the system looked in Azure for that moment.

AZURE ARCHITECTURE

AZURE
MS SQL

Portal (Web Hosting) App Service

Azure Load Balancer

VM 1 API

VM 2 API

Issues Found and
How we Have Overcome Them

Post-Migration Challenges

You may think this is the end of the story,
but in most cases moving Webforms to Azure is
just a beginning of many improvements
and adjustments both technical and organizational.

The hidden pitfalls

Due to specific business needs, company’s employees track end-to-end data evolving recordings for the last 10 years.

When they have launched the report building on Azure after migration, trying to get the data for the period of 10 yers, it hadn’t proceeded because of Azure time limitation (504 issue).

By the default, Azure waits 120 seconds till the webpage’s response, but what about a 10-year report?

How did we establish a proper data
processing procedure?

  • Our team rewrote reports to launch report building as a background process, that could be accessed through the link. However, after the migration of ASP.NET Webform to Azure, the execution time of report building feature was unsatisfactory.
  • Our engineers refactored report building part and made it 200 times faster. Now you see that code quality matters.
  • We found out that due to poor coding practices used when the system was created, the system performed spare computing, so virtual machines couldn’t proceed it as fast, as the hardware server did.

REMEMBER

Common cloud services won’t work for heavy computation, as virtual machines capacity is limited. If you work with high workloads choose on-premises.

Technologies
and Tools We Use

SCOPE OF WORK :
1 TECH LEAD
1 DEVELOPERS
1 QA
4 MOUNTH

Results

200 times faster
report building
99,99% guaranteed
business continuity
297 code issues
fixed

While writing this case we were honest about cloud and its specifics, so you may think it’s not worth of migration efforts. Actually, it’s worth.

Continuity is the most crucial thing for client’s system, and it was the main reason for them step in to Webforms to Azure migration.

As for now, system is not dependent on particular employees or unpredictable occasions like power outage.

We also updated all parts of the system and third-party tools versions.

Results

Key Takeaways

Count all your moves beforehand. You should know your budgets for the migration project as well as for system maintenance in the cloud, tier level to keep performance on the same level. Get to know if all the elements of your current app are compatible with cloud, to not seek a solution in the last moment.

Cloud environment limitations may hit you in unexpected way. Keep in mind things like request size, webpage load speed, and (oh God) time zones. By the way, in Azure HTTP request should be less than 128 kilobytes, page response speed < 120 seconds, and time format is GTM.

We performed many external and internal projects and can say for sure, that every project (product) should have an owner, who will be the main point of decision making and responsibility. You can hire a professional or involve current employee for this role.

Our Team
on This Project

Nick
DEVELOPER

Honesty is the best
policy in our business

This project wasn’t easy. We faced many issues for the first time, but I’m proud that we managed to resolve them all and deliver a qualitative cloud solution. I’m also grateful to our client for this valuable experience and patience in the most critical moments.

quotes

Let’s Start a
Conversation

Contact our legacy software modernization company to start your successful cloud migration story.

* Please enter your name
* Please leave a message






    elipse