In a recent article on Infoworld, David Linthicum wrote about the 3 Biggest Mistakes to Avoid in Cloud Migrations. Not surprisingly, the article focused on application migration. The biggest mistake was moving the wrong app for the wrong reason to the cloud. There are many challenges in moving to the cloud, but moving your apps is decidedly one of the biggest, and it's fraught with the most peril. If your apps don't work well, or don't work at all, you lose productivity. You may loose business advantage or opportunities, and you must scramble to fix the problem. All of that costs you money.
If you're new to the cloud, a bad app migration experience may stifle future cloud plans. For the IT professionals responsible for migrating apps, it may mean a loss of trust. For IT managers responsible for the migration, it may mean the loss of their job.
The key question from all of this is, how do you choose which apps to move to the cloud, and which not to? In this article, we'll lay out some criteria to help you choose which apps to move to the cloud and which not to.
Understanding Migration Options
Before we talk about what makes an app a good candidate for cloud migration, you should understand the options for moving an app to the cloud. In a separate article, David Linthicum laid out the options for migrating apps to the cloud. From his post he summarizes the three options:
- "Lift-and-shift" is the most popular and least expensive option. Apps are moved to virtualized environments in the cloud. They are not modified, and "have no cloud-native awareness." The key benefits are housing the app in the cloud infrastructure rather than on-premises. You may not get key cloud benefits such as hyper-scalability, or connectivity to other cloud services.
- David's second tier is "partial refactoring." This involves rewriting small portions of the app code to "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."
- The third option is "complete refactoring." In this case, the much of the app may be rewritten to become "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."
As you likely now, each successive option requires more time and is more expensive.
Apps that are a Good Choice for the Cloud
David wrote another article on this topic where he laid out several key factors in determining if apps were cloud-ready. David's criteria included:
- Apps built in the last 15 years.
- Apps using a language supported by the target cloud service provider.
- Apps whose data is largely decoupled from the core application. That makes it less likely for a data related issue to break the app in the cloud and allows you to separate domain or platform for the data or do a hybrid, or multi-cloud implementation.
We add to this list our own insights:
- Choose an app that your internal developers have a strong knowledge of, and experience supporting. This will make any refactoring easier. Apps that are a black box because no-one has touched them in years are not a good choice for migration that has any refactoring requirements.
- If you're new to the cloud, choose an app that will be an easy migration and a quick win. There are lots of barriers to cloud adoption that come from within an organization. If at all possible, choose an easy app to get your feet wet, and save the harder migrations for when the cloud has become an integrated part of your IT environment, and IT staff and the organization are familiar with it.
- Consider which different components of an app need to perform well in the cloud. Moving apps to the cloud will change your bandwidth requirements for users accessing the app, and for app to app communications, especially if data is decoupled from the app. In some cases, to avoid performance degradation, it's necessary to move the app, data, and any critical supporting apps to the cloud (or to multiple clouds). In her article, on finding the right balance between cloud and on-premises deployments, Sandra Gittlen details one such story:
"A bank in Australia that he wouldn't name moved a critical application to the cloud but had two other applications on-premises, causing performance problems. The performance problems arose because the cloud app relied heavily on the on-premises applications, so performance was slowed as they tried to communicate with one another. Once the bank moved all three applications to the cloud, it found the applications had never performed better, and downtime and maintenance improved."
- Finally, make sure your IT staff is trained in cloud technologies, cloud operations, and cloud architecture. An emphasis on training will help your staff avoid common cloud migration pitfalls, adjust to cloud computing provisioning and administration requirements, keep costs down in multi-cloud environments, and help you achieve better ROI from your cloud investment.
Reasons to Keep Apps out of the Cloud (for Now)
But these criteria aren't your only considerations. If an app has high security, compliance, or governance requirements, it may not be a good choice to move to the cloud. This argument cuts both ways with some saying the cloud can provide better security, and compliance and governance that is just as good. Remember, your team has to ensure security, compliance, and governance in the cloud. Training is a good place to start, but experience is also needed. If your team isn't ready, it may be better to move apps and data that don't have those requirements first. Save apps that do for later when your team is trained and had a solid base of experience managing apps in the cloud.
In that same story, Sandra Gittlen provided several examples of apps that were saved for on-premises and detailed the reasons why. One example came from the City of New York"
"[The city] walled off only a few areas that aren't candidates for the cloud -- such as emergency services and email. "NYC DOT is one of the most sued entities in New York City, and we constantly need to search our corpus of emails. We have a shown a net positive by keeping that application on-premises to satisfy Freedom of Information Law requests as well as litigation," said Cordell Schachter, CTO of New York City's Department of Transportation.
Training can Help you Make a Better Decision
Cloud IT Training can help you make a better decision about which apps to migrate. For example, The CloudMASTER Cloud Technologies class walks students through evaluating Service Level Agreements (SLAs) for key support, response, and downtime commitments. The class also walks students through evaluating apps for cloud suitability. Students also plan a service migration to the cloud, and then implement it as part of hands-on labs. In total, the three CloudMASTER classes provide hands-on with over 20 cloud platforms, and services, giving students a broad range of experience to help them evaluate and compare service providers, as well as in-depth security and compliance coverage that prepares them to select the best apps to move to the cloud.
CarverTC offers IT Training, including CloudMASTER cloud computing classes in Portland Oregon, and across North America.