Application Migration Strategies

Application migration is the process of moving a software application from one environment to another. IT teams in enterprises today are faced with unique challenge of upgrading / adopting latest technology stack and continuously innovate / build / adopt new features that never existed in the legacy application. This post outlines common migration strategies and benefits, drawbacks. These are migration strategies are part of 5 R's that Gartner outlined. Different applications can take different paths to the cloud, even within the same technology environment.

  • REHOST / LIFT & SHIFT: Involves moving the entire application environment from the current environment to the new environment (virtual environment in cloud) without any change in the functionality. Rehosting applications is usually quicker than other migration strategies.
  • REPLATFORM: Involves identifying an equivalent component on new environment for the application in consideration. Examples include upgrading the application to work with a cloud native managed database like AWS RDS or Azure SQL, changing the operating systems or containerizing the application.
  • REFACTOR / REARCHITECT: Involves re-architecting the entire solution/application to the target environment so that it can scale or perform better. Examples include moving from Monolith to Microservice architecture or modernizing data store from SQL to NoSQL. 
  • RETIRE / REPLACE: In some cases it makes sense to retire / decommission the application as the value offered is very limited or used by very few users or the functionalities can be easily duplicated / found in other applications.


Migration Approach




Why / When / How to Choose?


  • Organization is looking to scale its migration quickly to meet a business case and sensivtive about the cost and time to migrate.
  • Organizations looking for reducing on-premises infrastructure costs immediately and / or organizations incurring heavy cost in maintaining physical infrastructure.
  • Organizations choosing to move to the cloud and having some applications that just need to keep running without disruption or modification with an aim to replace the application in long run.
  • Organizations running COTS application where it is impossible for any code changes / component changes.


  • Organizations that are sure that minor changes to components will not affect the application functioning.
  • Organizations willing to automate operational tasks, example moving databases to the Amazon RDS or Azure SQL and scheduling automated backups.
  • Organizations looking to leverage more cloud benefits other than just moving the application to the cloud.
  • Organizations looking to enhance scalability and performance of applications using dynamic scaling features of cloud.


  • Organizations having strong business need for adding new features, scale, perform and that is not possible wihtin the exisitng application.
  • Organizations looking to take full advantage of the new environments.
  • Organizations is looking to integrate, collaborate, distribute with customers, partners worldwide.

General Checklist

  • Collect as much information as possible on the application features, technology stack (runtimes, version) infrastructure (servers, network, ports), integrations (SSO, FTP).
  • Ensure that the new environment has correct setup, access. Example ports open from one application server to database server, application server access to active directory for authentication etc.
  • Usually for legacy applications there will be minimal documentation, take this as an opportunity to create detailed documentation on new environments.
  • Prepare for a parallel run, plan for cutover and hypercare.
  • Prepare post migration support transition / operation procedures.