Application migration is the process of moving an application program from one environment to another. Examples include migration from an on-premises enterprise server to a cloud provider’s environment or from one cloud environment to another.
Migrating an application can be complicated because there are bound to be differences between the original and target environments. Furthermore, applications -- even cloud applications -- are not typically designed to be portable. Applications created on various cloud development platforms, such as Microsoft Azure and Google App Engine are usually designed to run on the platforms they were developed on. Other elements such as operating systems, management tools, the networking architecture, the storage system and the virtual machine (VM) configuration can all differ from those in the environment where the application was developed or deployed.
Application migration best practices
To help ensure a successful application migration, organizations should follow these best practices:
- Perform an assessment -- the foundation or any migration project is an assessment of an enterprises application portfolio, including any legacy systems or applications, as well as an understanding of the ecosystem surrounding the applications, including the configurations of the physical and virtual servers, network topology, current support and data dependencies and security and compliance
- Involve the business as soon as possible – it’s critical to ensure that all the relevant business units take part in planning the migration and are aware of how it might affect them and existing business processes. Clear communication is key.
- Map out a migration strategy -- identify the business reasons and use cases for migrating to the cloud. Decide whether to migrate in phases or maybe start with the least business-critical workloads to gain experience and then move to more mission-critical applications.
- Develop a cloud governance framework -- this should consist of clear, policy-based rules to help an organization prepare for a secure cloud adoption, including structures, roles, responsibilities, plans, objectives and a decision framework.
- Train staff as soon as possible -- set up a series of training sessions to get employees across different teams and business units up to speed on cloud concepts.
- Manage software licensing properly -- document all enterprise applications, closely studying their licensing as it relates to cloud computing. If necessary, check with vendors to determine if existing licenses can be updated so the applications can be used in the cloud.
- Automate if possible -- to improve the overall efficiency of the migration and minimize disruption to the business, organizations should automate repeated patterns where possible. This will speed up the migration process as well as lower risk and save money. The phased cloud migration approach and automation can work together, i.e., identify repeated patterns over time that can be automated in future migration phases.
- Test, test and re-test -- an enterprise that doesn’t have a proper test plan in place won’t have a successful migration. Starting talking about testing on the first day of the assessment.
Challenges of cloud migration
While there are a number of benefits to migrating applications to the cloud, including improved operational efficiently, faster deployment times and lower costs, there are still some challenges that organizations face, such as:
- Not having a defined strategy -- for successful cloud adoption and implementation, organizations need an end-to-end migration plan that doesn’t include any shortcuts. As some data centers and applications will be more difficult to migrate than others, a one-size-fits-all strategy won’t work.
- Security and compliance -- when moving to the cloud, enterprises have to ensure that the data they move to the cloud is secure. However, they also have to be sure they comply with all the relevant industry and government regulations.
- Failing to properly calculate costs -- organizations have to accurately evaluate the costs of their migrations and operations in advance to help them save money. Some things to take into consideration include capital and operational expenditures as well as the cost of the migration.
- Skills gap -- one of the main obstacles to moving applications to the cloud is finding people who have the skills to manage a migration effectively. Enterprises that don’t have the resources to hire cloud migration talent should cultivate these skills internally or look for vendors that offer dedicated people to support successful migrations. These individuals can also help train organizations’ employees in the necessary cloud skills.
Application migration tools
There are a number of application migration services and tools on the market, including:
- Azure migration program -- Microsoft offers free Azure migration tools, including Azure Migrate, to assess and migrate workloads, and free Azure Cost Management to optimize costs to help organizations move to its Azure public cloud computing platform. However, Microsoft doesn’t support any other cloud vendors.
- Amazon Web Services (AWS) migration services -- Amazon offers a variety of cloud migration services, including the AWS Database Migration Service, AWS Server Migration Service and the AWS Migration Hub. Most services are free for AWS customers. However, the tools only support AWS.
- Google migration services/Velostrata -- Google acquired the startup Velostrata, which gets enterprise applications running in Google Cloud Platform within minutes, while data migrates transparently in the background, according to the company. Although most of Google’s migration services are free, they only support Google Cloud.
- Micro Focus PlateSpin Migration Factory -- Micro Focus offers a comprehensive and highly scalable cloud migration product that supports multiple clouds and includes advanced security features, such as role-based permissions.
- Turbonomic – this vendor offers a comprehensive hybrid cloud automation platform, including managing, monitoring and optimizing workloads even after the migration is finished. DevOps teams using AWS and Azure should consider Turbonomic.