What is application migration?
Explore IBM's application migration solution Subscribe for cloud updates
Illustration with collage of pictograms of computer monitor, server, clouds, dots
What is application migration?

Application migration is the process of moving a software application from one computing environment to another. You might, for instance, migrate an application from one data center to another, from an on-premises server to a cloud provider’s environment or from the public cloud to a private cloud environment.

Because applications are typically built to run on particular operating systems in specific network architectures or developed for a single cloud platform, moving an application to a new environment can pose several challenges. It’s usually easier to migrate applications from virtualized or service-based architectures than it is to migrate those running on bare metal hardware.

Determining an overall application migration strategy involves considering each individual application’s dependencies and technical requirements, as well as your enterprise’s security, compliance and cost constraints.

Different applications can take different paths to the cloud, even within the same technology environment. Since the early days of cloud computing, developers have referred to these application migration patterns with names that begin with “R."

Rehost: Also known as lift-and-shift, rehosting is a common strategy in which the enterprise moves the application from an on-premises server to a virtual machine in the cloud without making significant changes. Rehosting applications is usually quicker than other migration strategies and can significantly reduce migration costs. The downside is that without modification, the applications won’t benefit from cloud native computing capabilities, and the long-term costs of running them in the cloud can be higher.

Refactor or rearchitect: Refactoring refers to making fairly significant changes to the application so that it can scale or perform better in a cloud environment. It might involve recoding major portions of the application so that it can take better advantage of cloud native functionalities—such as restructuring a monolithic application into a set of microservices or modernizing the data store from SQL to NoSQL.

Replatform: A kind of middle ground between lift-and-shift and rearchitecting, replatforming an application involves making minor changes to it so that it can better benefit from cloud architecture. Examples might include upgrading the application to work with a cloud-native managed database, changing the operating systems or middleware it works with, or containerizing the application.

Retire/replace: Sometimes, it simply makes the most sense to decommission the application. This might be because its value is limited, because its capabilities are duplicated elsewhere in your environment, or because it’s more cost-effective to replace it with a new offering—often a Software-as-a-Service (SaaS) platform—than it is to migrate the application.

Achieve workplace flexibility with DaaS

Read how desktop as a service (DaaS) enables enterprises to achieve the same level of performance and security as deploying the applications on premises.

Related content

Register for the guide on hybrid cloud

Application migration strategy

To develop the application migration strategy that’s best for your enterprise’s unique IT environment and business needs, you’ll need to understand exactly what’s in your application portfolio, the specifics of your security and compliance requirements, the cloud resources you’re currently consuming, and what your on-premises storage, compute and network infrastructures are like.

For a cloud migration to be successful, you'll also need to be clear on the key business drivers that are motivating it and to align your strategy with these drivers. You’ll want to be conscious of why you’re migrating to the cloud and what you’re hoping to achieve with the transition.

Application migration risks

Stakeholders might fear that application migrations might cause disruptions to the business or result in unanticipated costs. The most common risks include the following:

  • Unforeseen technical challenges: For example, an application might have so many dependencies that refactoring or replatforming can be much more complex and time-consuming than originally thought.

  • Unanticipated costs: Without proper planning, businesses might incur expenses that weren't budgeted for, such as new licensing fees or the training costs associated with getting employees up to speed on new tools.

  • Unexpected downtime: Major changes to an application can cause conflicts or issues that lead to unplanned downtime, both for the application and for connected or dependent systems.

  • Cultural issues or change management difficulties: Different organizations use apps differently, and those differences can create friction that slows down a migration project.

Undertaking a careful and detailed assessment of the risks and benefits associated with rehosting, re-architecting/replatforming or retiring each application in your portfolio can help mitigate the overall risks associated with application migration. In particular, it’s important to compare department-level costs with the total cost to the enterprise, and to assess the total cost of ownership (TCO) of any hardware you’d need to maintain to keep applications on premises.

Changing application migration use cases

In previous years, enterprises often sought to move applications to the cloud because they wanted the flexibility, scalability or predictable pay-as-you-go cost structure that cloud providers offer.

Today, however, enterprises are also seeking environments that enable innovation. Cloud technologies make the following options possible:

  • To experiment, to test new ideas and to “fail faster
  • Access to the high-performance processors needed to power deep learning algorithms
  • Access to containerized applications that allow development teams to improve customers’ digital experiences rapidly by implementing changes quickly

In many cases, cloud-friendly technologies like containerization make it possible to offer users better experiences than the virtual machines they might replace.

Application migration stages

Generally speaking, the application migration planning process can be divided into three stages. In each, it’s critical to weigh the costs of all potential options, including choosing to retain some on-premises workloads.

Application identification and assessment: In this initial discovery phase, begin by ensuring you have a comprehensive catalog of all applications in your portfolio. Then, categorize the applications according to whether they have business-critical or non-critical importance, whether their value is strategic or non-strategic, and what you stand to from migrating each to the cloud. You should strive to understand each application’s value in terms of these characteristics:

  • Impact on the business

  • Ability to fulfill crucial business needs

  • Timeliness and importance of data

  • Size, complexity and manageability

  • Cost of maintenance and development

  • Increased value from migration to the cloud

You’ll then want to conduct a cloud affinity assessment for each application you’re thinking about migrating. During this process, determine which applications are ready to go as-is and which would need significant changes before they could be made cloud-ready.

You can also employ application dependency discovery tools to help you determine the feasibility of migrating a particular workload outside its current environment.

Total cost of ownership (TCO) assessment: Determining the total cost of a cloud migration project can be a complex undertaking. Compare “what-if” scenarios for keeping applications and infrastructure on-premises with those associated with moving them to the cloud. Calculate purchasing, operating and maintenance costs for the hardware you’d maintain on-premises in either scenario and the costs of licensing software.

Compare the monthly bill that you’d get from your cloud provider in either scenario and the costs of the migration itself, including the costs of testing the new infrastructure and training employees to use updated software. Don’t forget to consider maintenance costs for legacy applications that remain on-premises.

Overall risk and project duration assessment: In the final phase of migration planning, establish a timeline for the project and identify any risks or stumbling blocks that you are likely to encounter.

Migrating legacy applications

Generally speaking, the older the application, the more challenging (and as a result, potentially the less worthwhile) it is to migrate to the cloud. Outdated software is problematic in many ways: it’s expensive to maintain, it can raise security concerns if it’s no longer being patched and it tends to perform poorly in modern computing environments. Be especially thorough with your assessment of legacy applications before deciding to migrate them.

Evaluating candidates for migration

When organizations assess an application's viability and priority for migration, they consider the following issues.

Complexity: Where was this application developed? If in-house, does the developer still work at your company? Is the application’s documentation readily available? How old is the application? How long has it been in use? How many other applications or workflows within your organization are dependent upon this one in some way?

Criticality: How many users depend upon this application daily? On a weekly basis? How much downtime might they tolerate before business operations would be disrupted? Is the application used in production, development, testing or all three? Is it managed by an in-house IT team or an external vendor? Are there any other applications with uptime/downtime requirements that must be synchronized with this application's?

Compliance: With which regulatory requirements must the application comply?

Availability: What uptime standards must this application conform to? For example, is it subject to a service level agreement (SLA) stipulating 99.99% uptime?

Testing

To ensure that no data or capabilities are lost during the application migration process, perform tests during the migration to verify that all data is present, that the data’s integrity has been maintained and that the data is now in the correct storage location.

It’s also essential to conduct follow-up testing after the migration is complete, benchmarking application performance and ensuring that security controls remain in place.

 

Application migration across hypervisors

Virtualization is a fundamental component in many cloud migration strategies because virtual machines can readily be run in new physical hardware environments. It’s even possible to move a live application—running on a virtual machine—between physical host machines without disrupting the user’s experience. The flexibility and versatility of virtualized computing environments dramatically simplifies the process of application migration.

Types of hypervisors and migration operations

Several currently available replication and migration solutions enable their customers to migrate virtual machines among bare metal servers, virtual servers in the cloud and even hypervisors.

  • VMWare application migration: It’s possible to lift-and-shift virtual machines running on on-premises VMware instances into a VMWare VCenter Server running in a private cloud without disrupting operations, causing downtime or requiring application reconfiguration.

  • Red Hat application migration: Red Hat offers an application migration toolkit—which is a customizable and extensible software solution—that analyzes IT environments to identify application interdependencies. It provides dashboard-style analytics reporting to highlight applications that are likely to experience problems during migration.
Cloud migration services

Many services are available to help your enterprise strategize, plan and execute a successful cloud migration.

Migration blueprint: In a comprehensive blueprint service offering, your vendor aids you in clarifying your migration strategy and objectives, gathering information about your applications and environment, identifying your users’ needs and your business requirements and coming up with a detailed plan of action for your migration.

Migration deployment: If you choose a managed deployment option, your vendor will not only aid you in strategizing and planning for your migration but will also manage the migration itself and any associated testing and troubleshooting. This is usually a turn-key service offering that includes full-scale, end-to-end support.

Cloud-managed services: A managed cloud service offering typically includes monitoring and maintenance of your cloud-based IT environment. Your managed cloud service provider assumes responsibility for multiple functions, ranging from managing cloud security to procuring as-a-service offerings from vendors on your behalf. Application migration can be included within a packaged service offering or added on an á la carte basis.

Application modernization: Application modernization services include custom development offerings that can prepare legacy applications for use in the cloud by modifying them so that they’ll run in containers or virtualized environments.

Related solutions
Cloud migration services

IBM Cloud® Migration Services helps handle your business’ cloud migration so you can concentrate on everything else.

Explore cloud migration services
Plan for cloud migration with IBM® Turbonomic®

Expedite cloud migration initiatives with accurate, easy-to-use cloud migration planning capabilities.

Explore IBM Turbonomic
Resources What is cloud computing?

Cloud computing transforms IT infrastructure into a utility, letting you ‘plug in' to computing resources and applications over the internet, without installing and maintaining them on-premises.

What is cloud migration?

Cloud migration is the process of relocating an organization’s data, applications and workloads to a cloud infrastructure.

What is application modernization?

Today, application modernization refers primarily to transforming monolithic legacy applications into cloud applications built on microservices architecture.

Take the next step

IBM Turbonomic allows you to run applications seamlessly, continuously and cost-effectively to help achieve efficient app performance while lowering costs.

Explore Turbonomic Book a free demo