INSIGHT / Case Study

Web Application Migration to Azure – Implementation, Benefits and Use case

Case Study - Azure, Cloud

Promise Delivered.

Objective

We might have one or more applications that run in a server in your own data center, or on your computer. And we might want to move those applications to Azure in the easiest way possible. You can move your existing application to Azure with the app service migration assistant tool. This tool is designed to help you assess and move your application to Azure.

Web Application Migration Overview

What is Web Application Migration:

Application migration is a process of moving an application program from one environment to another. Examples include migration from an on-premises enterprise server to a cloud provider’s environment or from one cloud environment to another.

Web Application Migration Goals:

Web Application Migration Implementation

  • Cost reduction
  • Robustness
  • Scalability
  • Agility

 
Goal in migration to the cloud should be much more than just cost saving. We can aim to make our system more robust and fault-tolerant. It should not capitulate with just minor non-critical errors. We should also aim to develop a scalable system.

With the cloud, our underlying hardware has become code. We have been given the flexibility to creating as many small processing systems or storage systems or N/W points as you may like. We can therefore now break down our monolithic system into many microsystems and use the flexibility of the cloud to bring in scalability.

With our system becoming robust and scalable our next goal should be agility. Once our system is robust we can think of making more changes to our system without fear of breaking it down.

High performance:

Performance means getting more out of your application. It requires you to make your system more efficient. Bottlenecks have to be removed. The cloud gives enormous flexibility to do so. As has been mentioned before the cloud allows for the hardware to be in the form of code. We can therefore easily deal with hardware-level bottlenecks.

Security:

Security is another area that has to be dealt with during cloud migration. Your goal should be to transform the security of your application. Security tends to be the most discussed topic related to the cloud. People are generally spooked with putting out data on the cloud. But moving to the cloud allows you to completely rethink your security protocols. The main service providers like AWS, azure, may have better security than on-premises systems.

Web Application Migration Benefits:

  • When an application experiencing increased traffic it is easy to scale resources on the fly to meet the increasing demand.
  • To reduce operational costs while increasing the effectiveness of IT processes.
  • Application implementation and deployment are fast. So that company can focus more on development while reducing infrastructure overhead.
  • If we would like to build a widely distributed development team. Cloud computing environments allow remotely located employees to access applications and work via the internet.
  • When we need to establish a disaster recovery system, Setting it up for an entire data center could double the cost. It also requires a complex disaster recovery plan. Cloud disaster recovery systems can be implemented much more quickly and give us much better control over our resources.
  • Tracking and upgrading underlying server software is a time consuming, yet an essential process that requires periodic and immediate upgrades. In some cases, the cloud provider will take care of this automatically. Some cloud computing models similarly handle many administrative tasks such as database backup, software upgrades, and periodic maintenance.
  • Cloud computing shifts IT expenditure to a pay-as-you-go model, which is an attractive benefit, especially for startups.

Web Application Migration Practices:

Assess the application and environment:

A successful migration project requires a thorough evaluation of the application portfolio, including its infrastructure, legacy applications and systems, and dependencies that may affect data migration. Prepare the destination server environment by considering requirements for compliance, scalability, and business practices.

Create a deployment document:

The web application may require specific server settings and dependencies, according to its complexity, version, and build. Creating a written deployment document as part of the migration plan can streamline the process and save the DevOps teams from the tediousness of discovering these requirements through trial and error.

Prepare for data migration:

Data transfer is critical to the overall success of the migration process. To begin, create a full compressed backup for file and database migration. Configure the source and destination environments to be as similar as possible, using the same folder paths, database names, and user names if the new system allows it.

Restore and configure:

Once the files and databases have been restored on the destination server, it’s time to reconfigure the application to its new server environment. Identify files related to the application configuration, and update paths and connection strings at the destination environment as needed.

Automate when possible:

Minimize disruption or possible downtime and increase the efficiency of your migration plan by automating repeated patterns whenever possible. For instance, if your organization has chosen to start small with a phased cloud migration approach, automating certain processes can facilitate future phases.

Create a test plan:

A comprehensive testing strategy is a crucial element of the migration process. Modify the local host’s file of your computer to test the application locally before going live at the destination server environment. Navigate the site as both a user and an application administrator and test all functions and features to gain a full understanding of performance.

Web Application Migration Tools:

  • App service migration assistant
  • Visual studio

Web Application Migration Implementation

Figure 1   web application migration process

Analysis:

  • Analyze on-premise app architecture
  • External/Internal application dependence
  • Choose a suitable cloud service (PaaS/IaaS)
  • Choose suitable storage options e.g Azure SQL, Table, Queue, etc.

 
App Migration:

  • Migrate your application to the cloud
  • Modify the source code according to the recommendations
  • Prepare your app to port to the Azure cloud.

 
Storage Migration:

  • Analyze existing database
  • Prepare your current DB to migrate to the cloud.
  • Migrate your SQL store to Azure SQL or SQL Server on VM

 
Testing:

  • Test scalability and performance
  • Fix any issues found
  • Testing application on azure

 
Monitor and Decommission:

  • Monitor your application
  • Setup app/DB backup and recovery
  • DE-commission your on-premise application

Understanding Current Situation:

MSRCosmos will engage in conversation with the respective teams in the organization and assess the current capabilities and the tools used. This is done with the help of a questionnaire that will be shared with stakeholders. A properly filled up questionnaire will give a good understanding of the current setup at the customer organization.

Finalising The Web Application Migration Objectives:

MSRCosmos with the help of stakeholders will finalize the objectives of the implementation and also an appropriate timeline for achieving those objectives.

Documentation of Existing Processes:

The current processes, tools, and systems used by the customer will be documented if no such document exists already with the customer.

Baseline Measurement:

Before starting the project, some measurements to indicate the current tools and capabilities will be noted down. This measurement will be compared after the engagement is completed.

Ideal End State:

After all the analyses are done and processed, the ideal end state from a migration standpoint will be documented and presented. This will include the process and tools that will fit the customer requirement.

Use Case Scenarios

Client
One of the world’s leading manufacturer of wire rope
Business Challenge

Client’s application was built using ReactJS for frontend, NodeJS, and ExpressJS for backend development. For database, they are using the Microsoft SQL Server. For frontend application deployment client is using the Apache2 Server and for backend service deployment client is using node server in a Linux Virtual machine. The current system lacked the capability to scale on-demand and control system downtime. It was not supporting the latest security and high capacity infrastructure standards.

Therefore, the client aimed at transitioning their legacy system to Azure via PaaS platform. They wanted to revamp the system to offer a more advanced and secure platform to their customers. The other key reasons that strengthened their decision to choose PaaS migration via Azure was to reduce maintenance requirements, maximize performance, minimize costs, achieve zero downtime, and zero data loss.

What MSRCosmos Proposed And Implemented:

  • MSRCosmos team conducted a detailed study that focused on understanding the legacy system architecture and deployment setup. The study helped in abstracting the complexity of the existing system and in re-engineering the system architecture that is compatible with cloud infrastructure.
  • Azure PaaS platform is cost-effective and flexible and delivers resilience, performance, security required to host applications. Deploying the legacy system using Azure PaaS platform reduces the required physical infrastructure and provides zero downtime.
  • The existing system lacked the capability to cope, perform, and handle increased workload. This challenge was achieved by reconfiguring the web and database servers that were handling the legacy systems.
  • We have created development, QA, production environments.
  • In the development environment, we have created an app service (B2:1) to run the application.
  • In the development environment we have created Azure SQL database (Standard S1).
  • In the QA environment we have created an app service (B2:1) to run the application.
  • In the QA environment we have created Azure SQL database (Standard S1).
  • In the production environment we have created an app service (P2: V2) to run the application.
  • In the production environment we have created an app service (B1:1) to run the jobs.
  • In the production environment we have created Azure SQL database (Standard S1).
  • In the production environment we have created General-purpose v1 account for storage.
  • Setup app/DB backup and recovery
  • DE-commission your on-premise application

 
On-premise environment:

  • Application is built with spring boot and angular, angular is deployed in Apache web server. Spring boot application was deployed in tomcat server. It can be accessed from the intranet and internet.
  • The application relies on Microsoft Active Directory services for authentication.
  • Application uses a standard Microsoft SQL Server 2019 database for storing application data.
  • Application stores the images uploaded to or created from the application using network file storage. Application is hosted on two instances.

Figure 2 on-premises environment architecture

Azure Cloud Environment:

  • Web Applications are mapped to cloud components (web roles).
  • Active directory authentication replaced with ACS 2.0 Passive federation with ADFS (Active Directory Passive Federation).
  • Azure cache in-role is used for session state.
  • Components that persist data onto disk are re-written to persist into Windows Azure Storage (Blob).
  • Azure VPN is used to provide interaction between cloud applications and on-premises databases.
  • Azure diagnostics has been enabled for diagnostics support.
  • Application uses an Azure SQL Server database for storing application data.

Web Application migration from on-premises to azure app services:

App Services:

Platform as a service (PaaS) is a complete development and deployment environment in the cloud with resources that enable you to deliver everything from simple cloud-based apps to sophisticated, cloud enabled enterprise applications.

Azure app service is a fully managed Webhosting service for building web apps, mobile backends, and RESTful APIs. From small websites to globally scaled web applications, we have the pricing and performance options and that fit your needs.

Tools:

Azure app service migration assistant tool is used to migrate the on-premises web application to azure app services.

Steps to be followed:

  • Download and install app service migration assistant
  • Select the local server (tomcat or iis) and application you want to migrate.
  • Provide the resource group name, destination site name, app service plan, and region.

Figure 4 web app migration using app service migration assistant

Database migration from on-premises to Azure SQL:

Azure SQL Database is the intelligent, scalable, relational database service built for the cloud. It is evergreen and always up to date, with AI-powered and automated features that optimize performance and durability for you. Serverless compute Hyperscale storage options automatically scale resources on-demand, so you can focus on building new applications without worrying about storage size or resource management.

Tools:

We can migrate the on-premises database to azure using Azure migrate assessment tool and Azure migrate migration tool.
These tools first discover the database, assess the database, and migrate the database.
 
Steps to be followed:

  • Download and install database migration assistant for assessment and migration.
  • Create an Azure SQL Server in the Azure portal.
  • For assessment enter the on-premises SQL server name and select the authentication type and select the database you want to migrate.
  • Upload the assessment report to Azure portal.
  • For migration enter the on-premise SQL server name and select the authentication type and database we want to migrate.

Figure 5 database migration using DMA

SHARE:

Contact MSRCosmos

Contact Us