This content is part of the Essential Guide: Prepare and manage enterprise apps for an IaaS model

Strategize wisely for a legacy application migration to cloud

Not every legacy application is compatible with every cloud service. Know the optimal path for any given application -- it could be the difference between success and failure.

Administrators in charge of legacy applications might feel swept aside by the boom of cloud-native applications, but even small changes can bring legacy apps onto cloud resources.

IT equipment vendors and other detractors cite cloud failures -- poor performance, flaky application behavior, exploding costs -- to sow fear, uncertainty and doubt about legacy application migration to cloud. But the continued success of Amazon Web Services (AWS) and other providers belies claims that public cloud can't handle enterprise systems. For example, American Airlines moved some of its most visible applications to IBM's cloud, and General Electric closed dozens of data centers to move thousands of applications onto AWS.

Cloud infrastructure as a service (IaaS) products, such as AWS Elastic Cloud Compute (EC2), are only one type of migration destination. Other companies use SaaS products that clone the features of legacy ERP, customer relationship management (CRM) and other systems. For example, both Oracle and Salesforce have wooed large companies to migrate processes and management to their SaaS options.

Keep an open mind when you evaluate both the type of applications to migrate and the category of cloud services to adopt. Looking across the cloud service hierarchy, certain application types work best on certain services.

IaaS is a good fit for VM infrastructure, both SQL and NoSQL databases and custom applications built on open source platforms.

Web apps, mobile or internet of things app back ends, custom Java and other business applications are good targets for migration to platform as a service (PaaS).

SaaS choices favor line-of-business systems, such as CRM and ERP, or productivity, communication and collaboration services.

Techniques for the modern age

Successful legacy application migrations are as unique as the organizations that conduct them, but generally fall into either the lift-and-shift or refactor category. The former entails few, if any, changes to the underlying application and is a shorter process -- but this doesn't make it the most efficient use of cloud services.

IaaS options, such as Amazon's EC2, Elastic Block Store and Simple Storage Service, are essentially cloud versions of VMs, storage volumes and network file shares and are compatible with virtualized applications. Lift-and-shift migrations typically move Linux or Windows application images to cloud VMs, such as EC2 or Microsoft Azure VMs, and run without code modifications. To ease this kind of legacy application migration, use image and data migration automation software. Products such as CloudEndure, Zerto, Carbonite DoubleTake and Racemi perform continuous data replication in the background, minimizing the downtime to cut over from legacy infrastructure to cloud.

Unlike on a private VM server farm, enterprises do not have unlimited freedom to select the OS version deployed on cloud instances. For example, although Azure supports Windows Server 2003 and later, users needing versions earlier than Windows Server 2008 R2 are on their own and can't download any pretested images from Azure Marketplace. The situation is better for Linux images, where AWS, Azure and Google Cloud Platform offer various distributions and configurations.

A PaaS like Azure Web App Service or Google App Engine is a suitable move for applications that run in supported languages, such as Java, .NET, Node.js or Python. These supply a runtime engine and execution environment that often includes features such as autoscaling, load balancing, health checks with automatic app restart and app versioning with rollback, isolating users from underlying infrastructure.

Legacy migration for commodity applications -- email servers, collaboration apps, including SharePoint or web conferencing tools, CRM and ERP -- is easiest with a SaaS product. SaaS versions of enterprise applications typically provide the latest version via subscription with continuous updates, security checks, capacity scaling and performance monitoring. Most organizations can shift users to SaaS back ends with minimal disruption and no data loss if the company has not heavily customized the designated application's configuration.

Recommended planning and migration process
The key to a successful legacy application migration to cloud is planning. This list is derived from Microsoft's documentation.

Modernize and refactor

To make legacy applications truly cloud-friendly requires modularizing the monolithic app architecture in ways that make it easier to use native cloud services. The lift-and-shift migration approach is necessary for applications that cannot be rearchitected, such as commercial off-the-shelf software. Internal applications that can be redesigned, even if it's a relatively minor modification, such as code repartitioning, can realize performance improvements and lower costs. Examples include database and business logic feature separation so that the application can use a managed service, such as AWS Relational Database Service, Azure SQL Database or Cloud SQL from Google, with a PaaS or separating monolithic code into independent modules that run on a container service, such as AWS EC2 Container Service or Google Container Engine.

Next Steps

IT pros from two walks of life climb up onto cloud

Are containers the right place for legacy apps?

Take on AppOps to manage legacy and new workloads

Dig Deeper on Application Rollout Planning and Problems