Belitsoft > Cloud Migration Services > Legacy Application Migration

Legacy Application Migration Guide

Often, business owners decide to continue maintaining outdated software systems because they think legacy system migration, part of application modernization services, would cost much more. Although this tactic may be viable short-term, using legacy systems cause a lot of problems in the long run. Clinging to legacy applications requires regular spending on maintenance, training specialized personnel, resolving compatibility issues, and making frequent patches to repair failed components. Avoid these issues with legacy to cloud migration.


As a CTO of a service software development company with 18 years of experience, I see plenty of times how companies went through all five stages of accepting changes. Finally, they come to realize it is unavoidable in an ever-evolving global economy.

Dmitry Baraishuk Belitsoft’s CTO on


What is legacy migration?

Legacy systems, including outdated CRM software, ERP systems, EHR (Electronic Health Records) systems, LMS (Learning Management Systems), databases, and other applications, are often still in use by businesses to support critical processes, despite their obsolescence. These applications may continue to function for years as businesses postpone necessary migrations due to perceived complexities and risks. Whether it's a CRM migration, ERP migration, EHR migration, LMS migration, or database migration. For example, these migrations might necessitate significant data transfer, and user retraining. One common concern is potential downtime. However, with proper planning and the use of modern migration tools, it's possible to eliminate them.

When talking about legacy application modernization, the two options are "lift-and-shift" and "refactoring". To avoid too many interruptions, application refactoring can be done in iterations after moving to the cloud with "lift-and-shift".

Why don’t more companies migrate legacy applications?

The reason many companies still hold on to their legacy applications, reluctant to migrate, is that migration is generally an intensive process that involves a lot of stress. The challenge is to transition smoothly enough, with no critical disruptions that may lead to losing revenue or disappointing users with a poor experience.

The main reasons more companies don't migrate their legacy apps are:

  • The application still serves its purpose, so there's no pressing need to replace it.
  • The company does not want to cause any interruption to business processes.
  • The company is afraid of the costs of developing and replacing the application.

It's always good to remember that risks come with any step in business evolution and they can be anticipated and mitigated. The rewards you gain after a transition often outweigh the risks and making this step first among others puts you ahead of the competition.

Why do some legacy migrations fail?

Migrating legacy applications is not a straightforward process and it may go astray without proper preparation and implementation. A good outcome comes when business minds meet with experienced technology experts to come up with a migration strategy and then follow best practices to execute it.

However, sometimes projects fail, and here are the most common reasons:

  • Poorly designed, developed, or documented legacy systems can lead to serious complications during redesign and transition.
  • Lack of a proper strategy and execution plan can lead to multiple setbacks and unpredictable situations during migration.
  • Ignoring the user experience and only focusing on the platform transition can make migration efforts futile.
  • Migrating Legacy apps and their dependencies can cause system breakdowns when they are poorly evaluated.
  • Productivity issues, such as network downtime and data access problems during migration, can cause significant business disruption.
  • Legacy system upgrades can be time-consuming, potentially leading to budget overruns and causing companies to maintain their existing systems.

If you are having these issues, a good idea is to partner with the software development and cloud migration team. Technology experts can offer their in-depth knowledge, broad expertise, and strategic thinking to assist you in legacy application migration.

Why should businesses migrate?

Migrating legacy software allows companies to keep up with modern tech trends, to approach industry challenges more effectively, and provide a much better user experience to their clients. Here are some more reasons businesses should choose to upgrade their applications:

  • Legacy apps aren't easily scaled to support greater functionality.
  • Legacy apps are not compatible with modern tools and apps.
  • Legacy apps often lack alternative versions to support mobile devices.
  • Legacy apps run under old design patterns offering low performance.
  • Legacy apps are a growing security threat because of outdated design loopholes.

Why migrate to the cloud?

One of the most efficient ways of migrating legacy applications is moving them to the cloud. Let's look at the advantages of cloud adoption over maintaining legacy applications.

Lower expenses. By using cloud services, businesses only pay for what they actually use and can easily upscale or downscale their resources. At the same time, cloud providers take care of maintenance and software updates, and provide a variety of services that do not come with any additional costs.

Easier access and mobility. Cloud-based applications offer high availability and provide support for modern user devices. This means your systems can be accessed 24/7 from anywhere and even allow multiple users to work with data at the same time.

Increased scalability. Not only can companies upscale and downscale their apps to increase storage capacity, but they can also add cloud services to enable new features or enhance application performance monitoring. Applications can also be integrated with SaaS apps running in the cloud.

Improved data security. Cloud systems are regularly updated to comply with security standards and offer built-in security mechanisms such as permission-based rules, policies, security analytics, and enterprise visibility tools.

What are legacy migration options?

If your legacy application lags, you need to upgrade it. Each modernization approach has pros and cons as well as different costs, risks and time frames. That is the essence of the risk-return principle, and you have to balance between less effort and risks but more value and outputs. Conducting business and technical audits helps you find this golden mean in your modernization path.

Dmitry Baraishuk Belitsoft’s CTO on


You can take several paths on your way to legacy migration. The options include rehosting, re-platforming, and refactoring your applications. Let's take a closer look.

Application rehosting

Rehosting is the easiest way to cloud adoption. Using this method, applications are moved from the on-premise to the cloud environment without any changes to the codebase. You are simply lifting and shifting to the cloud. This way the app can not access advanced cloud capabilities like autoscaling, but it still acquires general cloud hosting advantages like 99.999% reliability and global access.

Businesses often use rehosting as the first step in their migration process. Once they've completed the move to the cloud, it's much easier to modernize their legacy software.

Application re-platforming

During re-platforming applications are optimized for cloud compatibility and better performance. Slight changes are made to the software architecture to enable using cloud-based services like containers, DevOps automation, and modern database management. Businesses can also enable autoscaling to efficiently manage cloud resources.

This option works great when an application is hardwired to a certain workload and the business urgently needs improving scalability and performance. It's also the top choice when you'd like to take advantage of cloud capabilities but don't want to completely redesign the app's architecture.

Application refactoring

Refactoring is the complete remodeling of the application architecture and business logic in order to refine its design model, database utilization, and coding techniques. At the same time, the app's functionality and user experience remain intact. It also involves complete optimization for the cloud to fully take advantage of its capabilities.

Refactoring should be chosen when the business is ready to completely transition to a cloud-native architecture. Reworking the codebase will make it cleaner, easier to update, and better performing.

Full Stack Modernization

Legacy applications sometimes require a thorough revamp of both front-end and back-end technologies. This is especially common in enterprise applications built with older software frameworks. This often involves transitioning from .NET Framework to .NET Core for back-end operations and from AngularJS to Angular for front-end development.

Transitioning from .NET Framework to .NET Core

Microsoft's modern, open-source, cross-platform framework .NET Core, enhances your application's performance, flexibility, and efficiency. If you built your legacy application with the .NET Framework, transitioning to .NET Core can substantially improve performance, ensure cross-platform compatibility, and align your work with modern development practices.

Transitioning from AngularJS to Angular

AngularJS, once the favored choice for front-end development in many enterprise applications, has been outpaced by the evolution of technology. The newer versions of Angular have since taken its place.

Transitioning from AngularJS to Angular introduces a range of benefits to your application. Angular, a modern and feature-rich framework, ensures better performance, scalability, and enhanced tooling. It evolves with your application's expanding needs, maintaining efficiency and responsiveness throughout.

Learn more about what Angular can do for your application in our comprehensive Angular Migration Guide.

How Belitsoft Migrates Legacy Apps (The example from one of our Case Studies)

Our client, a creative technology company Technicolor, had been managing its 17,000 employees using a custom Resource Management System. Over years, the company grew to different continents with 17,000 employees globally, and the legacy software failed to effectively handle the load, leading to slow performance, and impeded scaling and adding new functionality.

The legacy app modernization and migration to the cloud turned out to be the best solution to resolve the challenges. To run the entire process effectively and plan the budget carefully, the enterprise management performed a SWOT analysis.

Documenting the migration project's strengths, weaknesses, opportunities, and threats allowed them to create a bird’s-eye view over everything, from operational to business and technical aspects. 

With a comprehensive view of their needs, Technicolor came to Belitsoft for full-scale legacy application modernization and cloud migration service.

Step 1. Evaluating the environment

Belitsoft’s development team started by analyzing the existing workloads and pinpointing key infrastructure, such as network, storage, and computing resources. We also defined critical performance and availability requirements.

Step 2. Setting up the migration strategy

At this step, we chose refactoring as the most viable migration option and prepared comprehensive documentation detailing every aspect of its implementation. One of our management best practices is to create a backlog and assign issues to the technical team to track their performance. We also appointed a project manager that helped communicate the details of migration between stakeholders.

Step 3. Carrying out a pilot migration

A pilot migration is a good way to test out your strategy and see whether your users are satisfied with the new experience. We run the pilot migration through testing and quality assurance to make sure we avoid any disturbance during the actual migration.

Step 4. Migrating the legacy application to the cloud

The migration to Azure was performed at the weekend to avoid downtime. The developers was keeping the old software running, using it as a backup system, until they were fully sure of a successfully completed migration.

Step 5. Cloud maintenance and optimization

Now that we've migrated, the developers kept on monitoring, optimizing, and managing the app performance in Azure. Keeping track of the usage reports and configuring autoscale was aimed to provide better cost management.

Seeking assistance from an experienced cloud migration partner can save you a lot of stress before, during, and after your legacy application migration.

Migrating Legacy Applications to AWS

Migrating a legacy application to Amazon Web Services (AWS) can be a complex process. It involves rewriting application architecture for the cloud, integrating complex data, systems, and processes, addressing compliance and security concerns, managing hybrid networking setups, and investing in people and tools for a successful migration.

Our specialists suggest using AWS's cloud-native architecture and services for a cost-effective migration. Proper tools and strategies improve operational efficiency, cut IT expenses, and boost performance.

Our development team uses popular AWS services for easy AWS cloud migration.

AWS App2Container Service

AWS App2Container simplifies the containerization and modernization of existing Java and .NET applications. It automates the manual tasks involved in containerizing an existing application, making the process more efficient.

To migrate a legacy app to AWS using App2Container include the following steps:

  • Initialize App2Container: Set up a workspace for collating all relevant artifacts related to the containerization project.
  • Scan server locations: Identify applications that are suitable candidates for containerization.
  • Containerize the selected applications: Use the extracted application artifacts.
  • Generate pipeline in App2Container: Automatically generate AWS CloudFormation templates and the Amazon ECS task definition. Register the task to run on the created ECS cluster.
  • Deploy pipeline in App2Container: Create an AWS CodeCommit repository for each application. Auto-upload all generated CI/CD artifacts and manifests to the repository. Additionally, App2Container creates the CI/CD pipeline (AWS CodePipeline) for the application.

Using EC2, ECS, EKS, EB, and API Gateway with Lambda Integrations

Another strategy for migrating a legacy application to AWS involves using services like EC2, ECS, EKS, EB, and API Gateway with Lambda integrations. These services allow for the creation of a scalable and efficient client-server interaction and packaging of the application as a container for any ECS cluster on AWS, among other functionalities.

Here are examples of how to migrate a legacy application to AWS using some of these services:

EC2 (Elastic Compute Cloud):

  • Create an EC2 instance
  • Configure instance details such as the number of instances, purchasing option, networking settings.
  • Add a storage volume and tag the instance for identification or categorization.
  • Set up a security group for the instance.
  • Review the instance configuration and launch it.
  • Connect to the EC2 instance via SSH (for Linux instances) or RDP (for Windows instances).
  • Install and configure the application and any necessary dependencies.

ECS (Elastic Container Service):

  • Create a docker image locally on your machine or using a continuous integration service and push it to ECR (Elastic Container Registry).
  • Create an ECS cluster. If you're using Fargate, these are serverless clusters, otherwise, you'll need to provision and manage the servers yourself.
  • Launch a service if your application is long-running, or a task if it's a batch job.
  • Test the service or task to ensure it's behaving as expected.

API Gateway with Lambda Integrations:

  • Reuse parts of the previous application to implement the lambda function handlers.
  • Package the code in zip archives and deploy them to an S3 bucket.
  • Define the functions in the CloudFormation template.
  • Set up the API gateway, including the gateway itself, integrations, routes, a stage to deploy the API, and a set of permissions.

Please note that these are high-level steps and the actual implementation may require additional detailed steps and configurations.

Modernizing a Legacy Application with MongoDB Atlas

Using a microservices architecture and MongoDB Atlas, a fully managed version of MongoDB, simplifies operations and provides enhanced security.

The steps to take involve:

  • Move data to MongoDB's document database through a one-time data migration or ongoing real-time data synchronization.
  • Use AWS Services, such as AWS Database Migration Service (AWS DMS), Apache Sqoop, or Spark SQL's JDBC connector, to facilitate the migration and modernization process.
  • Real-time data synchronization through the tools like AWS DMS CDC, Debezium, or Qlik Replicate.
  • Use MongoDB Atlas Services like Atlas Search, Realm, Atlas Data Lake to optimize the app in the cloud.

Get detailed guidance on migrating your application to AWS to avoid costly errors and downtime.

Never miss a post! Share it!

Written by
CTO / Department Head / Partner
I've been leading a department specializing in custom eLearning software development and Business Intelligence software development for 17 years.
6 reviews

Rate this article

Recommended posts

Belitsoft Blog for Entrepreneurs


Azure Cloud Migration for a Global Creative Technology Company
Azure Cloud Migration for a Global Creative Technology Company
Belitsoft migrated to Azure the IT infrastructure around one of the core business applications of the global creative technology company.
Migration from .NET to .NET Core and AngularJS to Angular for a Healthcare Technology Company
Migration from .NET to .NET Core and AngularJS to Angular for a Healthcare Technology Company
Belitsoft migrated EHR software to .NET Core for the US-based Healthcare Technology Company with 150+ employees.

Our Clients' Feedback

Let's Talk Business
Do you have a software development project to implement? We have people to work on it. We will be glad to answer all your questions as well as estimate any project of yours. Use the form below to describe the project and we will get in touch with you within 1 business day.
Contact form
* I give my consent for Belitsoft to process my personal data pursuant to Belitsoft Privacy Policy in order to handle my request and respond to it. I am aware that I have the right to withdraw my consent at any time.
Call us

USA +1 (917) 410-57-57

UK +44 (20) 3318-18-53

Israel +972 53-337-9957

Email us

[email protected]

to top