Home / Case Studies / Cloud Migration
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?

Our case study outlines our recent encounter with a similar job at hand. We’ll share deeper insights from our trusted experts to help guide you through the process.

About the Client

Our client is a scalable database registry storing sensitive healthcare data. They help healthcare organizations and clinics preserve data privacy, and establish access control, authentication, and encryption.

Their web application is a biometric system that authorizes and tracks users, a database to store the records, and a custom solution for clinics to assign new user roles and check if specific permissions are available for the user role.

The Challenges
We Faced in
This Project

A business can't operate at its full potential when its operations are slowed by outdated technology that is not optimized for today's computing environment. The more efficient a company is, the more competitive it will be. But as you probably already know, the path to this isn’t easy, especially if we talk about moving the legacy system to the cloud.

WE HAD THREE
MAIN CHALLENGES

System environment parameters

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

Database compatibility

The MS SQL database used in the solution wasn’t compatible with Azure SQL and had to be upgraded and fixed.

Unsupported parts

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

Planning and Preparation Stage

Let’s start from the very beginning, when our team familiarized with the project for the first time. Although the task seemed easy, we knew that migrating Webforms to Azure would require additional work. So, we decided to map out what should be done first.

If you use third-party tools in your current legacy application check their compatibility with the cloud platform you intend to use. Check their current versions and install any available updates th. Otherwise, they may not work properly and that could endanger data continuity.
orange

System Prior Architecture

Building a Development Environment in the Cloud

A development environment is a set of tools and services that can be used to build, test and deploy an application

In our case, the original system consisted of the MS SQL database, a web server that hosted the web portal through the IIS connection, and the biometric service server. All these applications were designed to be hosted on-premise, so we had to carefully prepare cloud environment before migration and rewrite some app parts.

Development Process

000

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

001

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

010

We refactored it and switched the biometric API to use load balancing.

100

In the end, we made a few more modifications to adjust it to the Azure environment.

After we tested Azure Dev with Azure App Service, we were able to find and resolve more issues we. 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

Cloud migration costs can be sky-high because of various factors. How to calculate them all? Explore these proven approaches to estimate every dollar of your migration.

Learn more

Want to know more about all benefits, risks, and different approaches to cloud migration? We prepared a comprehensive checklist.

Learn more

Blog Posts

Issues Found and
How we Have Overcome Them

Post-Migration Challenges

Unfortunately, this was not the end of the story.
In most cases, moving Webforms to Azure is just the beginning of many technical and organizational improvements.

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 launched the report building on Azure after migration, trying to get the data for the period of 10 years, it hadn’t proceeded because of Azure time limitation (504 error).

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.
  • We found out that due to poor coding practices used in the system's creation, the system performed spare computing, so virtual machines couldn’t proceed as fast as the hardware server did.
  • Our engineers refactored the report building part and made it 200 times faster. By now, it's easy to see why code quality matters.

REMEMBER

Common cloud services may not always work for heavy computation, as virtual machines capacity is limited. Choose on-premises platforms if you work with large workloads.

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

We cannot underestimate the importance of honesty in this case study. So, you may think it’s not worth of migration efforts. Actually, it’s worth it.

Continuity is an essential requirement for the client’s system - a major reason for them to step into Webforms to Azure migration.

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

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

Results

Key Takeaways

Calculate 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. Identify if all the elements of your current app are compatible with the cloud.

Cloud environment limitations may hit you unexpectedly. Keep in mind things like request size, web page load speed, and (oh God) time zones. By the way, in Azure HTTP requests should be less than 128 kilobytes, page response speed < 120 seconds, and the time format 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 a 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 high-quality cloud solution. I’m also grateful to our client for this valuable experience and patience in the most critical moments.

quotes

Case Studies

Actions speak louder than words! Take a look at our legacy app modernization
services in essence.

All Cases

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
    Ready to start your project? Get a consultation!
    CONTACT US
    close
    Ready to start your
    project?
    Let’s Talk

    We use cookies to ensure that we give you the best experience on our website. By continuing to browse this site you accept the use of cookies.

    Whitepaper.doc
    close
    Get Your FREE Template!

    Please, provide the email address so that we can send the whitepaper to you.

    * Please enter your name





      CHECKLIST.DOC
      close
      Get Your FREE Template!

      Please, provide the email address so that we can send the checklist to you.

      * Please enter your name