While making application code changes prior to moving an application to the cloud, for example, developers should take care not to affect the external behavior of the application, according to experts. At the same time, developers should account for the CPU resources an application consumes. If it’s a high-utilization application and that attribute isn’t modified prior to migration, enterprises could wind up with an unexpectedly high cloud services bill, as public cloud billing models are based on usage.
Another conundrum is that the more “cloud-native” the application—meaning, the greater the number of the cloud provider’s services and features it integrates with—the more tightly the enterprise is beholden to that provider. That’s a benefit as long as the application stays where it is, enabling businesses to use the full richness of functionality their cloud provider has to offer.
Chang pointed out that implementing a good cost optimization practice still does give IT teams much control over public cloud providers increasing their costs.
However, in the “cloud smart” multicloud model, businesses are likely to want to move applications from time to time as goals and conditions change. Tight coupling makes it more difficult and expensive to extricate applications and data from one provider and move them to another public or private cloud platform, said Chang.
“AWS now has 200 services,” he said. Integrating with all of them “represents strong and tight cloud lock-in.”
To minimize this situation, Chang advised using “lightweight” public cloud services, such as load balancing and storage, which he said are fairly generic across different cloud providers’ platforms and thus more easily portable. He also suggested “staying away from features that are unique” to a given provider, where possible.
On the benefits side, refactoring an application for the cloud can increase its resilience by decoupling applications components to take advantage of the public cloud’s highly distributed and redundant footprint. And, of course, enterprises gain the auto-scaling capability to grow or shrink their environment as business demands change and to pay only for the resources they use.
Companies that have attempted to move application workloads from the public cloud back to their data center because of costs or other factors have found that it’s far from an easy switchover. Deployments must be redesigned from scratch.
Moving from public cloud to private cloud is easier than moving on or off a legacy infrastructure. However, Chang said moving from public cloud to private cloud can be more difficult than going the other way if the migration team has not been careful to use fairly generic services that are available in private cloud environments.
“In some cases migrating back may actually be easier than going the other way if the applications were refactored into containers for example, as they are able to run anywhere quite easily,” he said.
Some issues to be mindful of in cloud migrations:
Security configurations moving when to a more public-facing environment
Application performance post-migration
Hidden fees with cloud for such tasks as data back-up snapshots and exporting data, given that everything is priced a la carte based on usage volume or time
One alternative to full cloud migration is available using public cloud provider-supplied infrastructure installed in the customer’s data center.
Chang said this approach can be costly and come with caveats, such as requiring continuous connectivity to the cloud provider to be fully functional.
“For example, AWS has on-site versions with its software stack on top of it,” said McDowell. “So do HP and Dell. You can buy capacity on demand without the complexity or risk of [the public] cloud.” Whether this becomes a major trend or a short blip in the Great Cloud Migration remains to be seen.
If a migration gets the green light, McDowell warns that it’s risky to overpromise because “you don’t know what you don’t know. The companies that do well are the ones with better lines of communication between IT and the business units,” he said.
The bottom line is that, although the benefits of cloud migration can be substantial, it can be complex and challenging to accomplish. For big companies, cloud providers are available to provide a lot of help. Smaller companies are challenged to find personnel and consultants with solid experience in the destination cloud environment(s) to help them migrate as efficiently and with the least disruption possible.
Large or small, however, businesses should seek a flexible IT architecture that assumes that the continual migration of applications across environments is the new normal.