While public cloud adoption continues to grow, application migration remains a big undertaking. Before an enterprise starts the process, it needs to determine which types of applications to move to the cloud, the order in which to move them and whether those applications require any changes to run effectively off premises.
The first step of any application migration plan should be to take inventory of the software you already run, said Robert Christiansen, vice president at Cloud Technology Partners, a Boston-based cloud consulting company recently acquired by Hewlett Packard Enterprise.
"Enterprise[s] need to start with an assessment of their current application environment," he said.
Some vendors offer tools that can help with that process. The Microsoft Assessment and Planning Toolkit, for example, provides insight into the software that runs on enterprise networks to help an organization assess which applications to move to the Azure public cloud. Amazon Web Services offers a similar tool, called the AWS Application Discovery Service, to assist with migrations to its public cloud.
After that initial assessment, the next step in an application migration plan is to determine the sequence in which your apps will move. Focus on the least strategic applications first. These include applications that users need to complete their work, but are not essential to the business. For example, if a scheduling application for a particular department goes down, the impact on the business is minimal. On the other hand, if an e-commerce application goes down, there is a monetary loss.
Email is another good candidate to move to the cloud first. These applications are generally well-understood by IT teams, and if problems arise, employees can communicate in other ways, such as texting and voice calls.
Mission-critical apps pose a challenge
Jay Lymanprincipal analyst at 451 Research
As a business examines its more mission-critical applications, such as a billing system, other factors come into play. Many of these applications house sensitive data, and some organizations might not want to move them off site. Similarly, industry and federal compliance requirements limit which applications an enterprise can move into a public cloud environment.
What's more, organizations often alter their mission-critical applications over the years to support new functionality. This means those applications can have multiple connections to systems such as payment gateways, web services, external storage and security checks.
"One challenge with mission-critical systems is their design and complexity," said Jay Lyman, principal analyst at 451 Research.
IT teams must account for all of these dependencies, and the potential compatibility issues they create, in their application migration plan. For instance, some software might rely on a user authentication system that the targeted cloud provider does not support.
Additionally, many enterprises designed their legacy applications before cloud computing was even envisioned. In some cases, development teams might need to rewrite significant parts of these applications so they operate efficiently in the cloud. Factors such as age, design and feature set influence how complicated and time-consuming this process is. It can become especially complex if hundreds, thousands or tens of thousands of application programming interfaces are involved.
If an enterprise's IT staff doesn't have much experience with public cloud, start a migration with a small, new application, such as one that supports a big data project. This lets the staff gain a working knowledge of the cloud platform, and it decreases the learning curve. This also lets enterprises design the application for the cloud from the start to take advantage of features such as automation and orchestration.
Three options for an application migration plan
There are numerous cloud migration strategies, but three primary options have emerged. An enterprise's final choice could affect the sequence in which applications move to the cloud, how quickly the migration can happen and how much longer their existing code will be functional.
- Rehost. A business can rehost an application, simply moving it as is, from on premises to the cloud. This option, also known as lift-and-shift, is quick and simple, but does not ensure an application can fully take advantage of cloud's capabilities, potentially creating inefficiencies.
- Refactor. When some applications move to the cloud, issues like latency or a decrease in response time arise. In these cases, it might be best to restructure an application. Developers can wrap new code -- a process known as rewrapping -- and program fixes around the software to overcome these issues.
- Rearchitect. When the migration creates too many issues that can't be overcome with refactoring, the application might require a rewrite. This option requires the most work upfront, but enables applications to fully realize cloud benefits, such as faster updates, further down the line.