Most enterprise IT shops have more than 1,000 applications they must understand or relearn before moving any of them to the cloud. You simply can't move your apps en masse.
Why? Because some workloads make sense for the cloud, and some do not. Here's my guide on how you can assess which are good candidates for a move to the cloud.
Key factors for determining cloud-ready applications
Good candidates for the cloud are applications that were built in the last 15 years and use a language supported by your target cloud. If you find an analogous platform for these in the cloud, your migration should be easy.
You also need to filter applications by those where the data is largely decoupled from the core application, so you don't break things and gain the flexibility to place the data in its own domain or platform. You can even separate the data and application across cloud and noncloud platforms.
Other factors include security, compliance, and governance requirements, which may be cloud killers. These are common when dealing with health and financial information. (When evaluating clouds, make sure they support your needed encryption levels.)
Migration options for your applications
Once you know which applications you can safely migrate, you have to choose how to migrate them. There are three options, which I've detailed in a previous post. To recap:
- Lift-and-shift is the most popular and least expensive option. Applications are merely pushed to the cloud with little or no modification. They have no cloud-native awareness. Use this option when your goal is to use a cloud infrastructure other than your own to host applications.
- Then there's partial refactoring, where you change as little of the code and data as you can, but build in cloud-native awareness where it improves the application's capabilities or effectiveness, but mainly has the application do what it always has done.
- Finally, there's complete refactoring, where you rewrite the application to be as cloud-native as possible. This approach involves building facilities into the applications that scale and provision using native APIs, as well as take deep advantage of other features supported by the native cloud. You choose this option when you want a new approach to your application that takes advantage of the cloud intrinsically.
Migration is a critical process, and the effort can make or break the cloud for your enterprise. Selecting the right workloads is hard but necessary work.