What is application migration?
App migration involves moving apps between environments—this could be from on-premises to the cloud, or between different cloud environments.
What are the benefits of migrating apps to the cloud?
The process of app migration involves an organization's software migrating from one environment to another. In the context of cloud technology, apps can be migrated from on-premises servers to the cloud or from one cloud to another. App migration can be a part of a larger modernization or cloud adoption strategy.
Lots of different types of workloads—including applications—can be migrated to the cloud. Commonly migrated workloads include:
- Windows Server
- SQL Server
- Linux Server
- Web apps
- Virtual desktops
There are a variety of benefits to app migration, including:
Enhanced security. Cloud environments often come with built-in security capabilities that are automatically patched and updated by the service provider. This provides organizations with increased security without the cost of increasing time and resources put towards security maintenance.
Compliance. Highly regulated industries—like government, finance, and healthcare—have strict and sometimes complicated compliance requirements. Some cloud platforms come with specialized compliance offerings to help workloads meet those requirements.
Backup and recovery. In the event of a technology disaster, backup and recovery support is essential for getting back to business as usual. Many cloud providers offer one-click backup and recovery capabilities built into their platforms.
Scalability and flexibility. Cloud resources can be scaled up or down rapidly as an organization's needs change—and organizations pay only for the resources they use.
Simplified management. Central management tools help organizations easily keep track of their apps as well as their disparate or hybrid environments.
Customer and employee value. Organizations can deliver enhanced value to app users—either internal employees or external customers—by migrating apps to the cloud. Cloud-native apps are more available, resistant to outages, and manageable than on-premises apps.
Cost savings. App migration can result in significant savings, including maintenance, resource, and real estate costs. Furthermore, cloud-based apps can be optimized to further reduce cloud spend.
Application migration steps and strategies
App migration steps
There are three basic steps for migrating apps:
- Planning. Before any migration action is taken, organizations must think carefully about their app migration goals—including their business and IT goals—and define their strategy. This is the time to discover and assess existing apps and environments.
- Implementation. During this step, organizations build new skills and begin migrating their apps iteratively. An iterative approach gives organizations the flexibility to change their project scope or strategy as needed.
- Operations. App migration is not a one-and-done deal. Once organizations migrate their apps, they can use cloud platform services and tools to better secure, govern, manage, and optimize their apps for performance and cost.
App migration strategies
These four strategies are distinguished by two things: first, an organization's migration goals, and second, the need for code changes to the apps themselves. An app migration strategy is defined during the planning step and put into effect during the implementation step.
Rehost. Sometimes called "lift-and-shift," rehosting emphasizes speed because it requires practically no code changes. Organizations take apps from their previous environment and migrate them as-is to their new cloud environment.
Replatform. This approach sits between rehosting and refactoring. With replatforming, organizations make minor code changes so that cloud technologies can be applied to the apps.
Refactor (or repackage). A step further than replatforming, refactored apps moving to the cloud are modified significantly so as to more closely resemble an app developed exclusively for the cloud.
Rearchitect. Organizations modify and extend app functionality and code to scale better. This might be the right approach if the organization needs cloud scalability.
If an organization decides that an app's functionality, lifespan, or ability to meet future business needs is too limited, two additional strategies are available:
Rebuild (or rewrite). Rebuilding is sometimes the right option if an organization needs to recreate an app using cloud solutions. Instead of continuously modifying code that may have inherent flaws or limitations, rebuilding gives organizations the opportunity to start fresh in the cloud.
Replace. Replacing an app with a ready-made solution can be faster than rebuilding and can free up valuable development resources. But replacing apps could pose challenges like interruptions to business processes and limitations to future modernization initiatives. A replacement app may not have been designed for all of an organization’s scenarios and use cases, and the developers behind it may not have the resources to customize or expand the app as the organization's needs change.
Migration framework and goals
App migration should follow a pre-established framework of organizational goals. For example, the Azure Well-Architected Framework has five architectural pillars geared towards app modernization goals—these can be used for app migration as well:
- Reliability: The ability of a system to recover from failures and continue to function.
- Security: Protecting a system from threats.
- Cost optimization: Maximizing value by managing costs.
- Operational excellence: Operations processes that keep a system running in production.
- Performance efficiency: The ability of a system to adapt to changes in load.
App migration challenges
App migration poses some challenges, but there are ways to mitigate and overcome them. Some of the most common challenges faced by organizations migrating their apps to the cloud include:
The bulk of challenges faced during app migration can be addressed early during project planning. Successful app migrations need their scopes and goals defined and key stakeholders identified.
Data and technology issues
Organizations need to prepare their apps for the migration—the data must be high quality and the technical dependencies mapped. Organizations should discover and assess their apps and environments while planning for migration.
Internal training issues
App migration doesn't just impact the app itself—it impacts the people who build and use it. For that impact to be positive, organizations should invest in skill-building and training for how to use the new environment where the app lives as well as any new cloud-based tools and resources.
App migration tools, services, and resources
Migrating apps may seem daunting, but organizations that want to move their apps to the cloud don't have to do it on their own. Cloud providers and specialist partner organizations offer many assessment tools, methodologies, and programs designed to help organizations migrate their apps. For example, Microsoft Azure offers the following resources to help organizations begin migrating apps at their own pace:
Tools and services
Azure Migrate is central dashboard with specialized tools to help you plan, track, and implement app migration. Find destinations for building or migrating apps, including:
Quickly and easily create enterprise-ready web and mobile apps for any platform or device.
Build scalable apps with managed and intelligent SQL in the cloud.
An overview of migration and modernization insights, strategies, and tips for getting started.
Expert help, technical training, and resources that enterprises can use to confidently set up their cloud environment.
A proven collection of documentation, guidance, best practices, and tools designed to accelerate cloud adoption.
An assessment tool that helps organizations gauge how ready they are to migrate their applications to Azure.
An assessment tool that helps organization evaluate their business strategies for modernizing their apps and data.
A collection of solutions, news, and customer stories about app modernization.
Self-paced course designed to help organizations identify the drivers behind and paths forward for app migration and modernization.
News, insights, and case studies of how Microsoft has modernized its own applications and infrastructure with the hybrid cloud.
App migration is the process of moving an organization's apps from one environment to another, like from on-premises to the cloud.
Migrating apps to the cloud affords organizations a variety of benefits, including: cost savings, scalability and flexibility, enhanced security, regulatory compliance, backup and recovery, and simplified management.
There are three overarching steps for application migration: Planning, implementation, and operations. Planning includes defining a migration strategy. Implementation involves skill-building and migrating apps. Operations covers ongoing governance, management, and optimization after migration.
App migration strategies should support an organization's overall migration and modernization goals. The Azure Well-Architected Framework lays out five pillars that work towards those goals: reliability, security, cost optimization, operational excellence, and performance efficiency.
There are four broad strategies, each distinguished by the level of code changes that an organization wants to make to their apps. Rehosting moves the app as-is from an older environment to a newer one. Replatforming entails some code changes to connect apps to the cloud. Refactoring calls for significant code changes to the app. Rearchitecting involves significant modifications to apps for cloud scalability.
Common challenges to app migration include issues around planning, data and technology, and internal training. Investment in time and training to prepare for an app migration can help to mitigate and overcome those challenges.
There are a wide variety of application modernization tools and services available depending on what an organization needs. For example, if an organization wants to optimize costs, operate confidently, and ship features faster by bringing their .NET apps to the cloud, a fully managed service like Azure App Service might work well.