Application migration can be daunting when IT pros first look to make their way to the public cloud, but it doesn't have to be, according to experts with experience moving workloads on behalf of clients. Whether you're a novice cloud user or one of the enterprise clouderati, some rules of thumb apply when moving apps from being hosted on-premises to a cloud service provider's data center.
It's important to note that at least half the battle lies in preparation for running in the cloud, from assessing applications to evaluating internal operations processes. After that, a phased, stepwise approach to cloud migration is strongly recommended.
Get ready: Assess applications first
Before migrating, IT professionals must assess applications and understand their business objectives for the cloud. Will the cloud host production or test and dev applications? And is there a variable demand for resources within those apps that can take advantage of flexible cloud infrastructure?
"There are some apps that should not be moved based on their network needs and their [dependencies]," said Robert Green, principal cloud strategist at Enfinitum Inc., a consulting company in San Antonio.
For example, IT shops should "assess whether an application has ties into local file stores," Green said. "If you're not going to move the file store, then don't move the app."
Understanding app dependencies can require a painstaking deconstruction of a tangled IT web, but that work pays off in the end, Green said. Avoiding it can be expensive. An Enfinitum client recently attempted a fast "cut over" to a public cloud and didn't recognize the presence of several on-premises firewalls that filtered Web traffic. Those firewalls quickly became overwhelmed when 400 users tried to traverse the Web to the public cloud after the migration, resulting in a $10 million loss for the business when employees couldn't get online for eight hours.
Keep in mind that most applications will also need some modifications to deal with being housed in the public cloud.
"Apps for data center operations traditionally work under the assumption that they're running on a reliable piece of hardware that's never going to go away," said Eric Dynowski, CEO of Turing Group, a cloud consultancy in Chicago. "In the cloud space, resources are ephemeral, and being able to deal with this transience at the app level is key."
Don't forget policy when assessing apps, either, experts warn. Compliance with regulatory requirements and other nontechnical issues can often make or break an app's readiness for the cloud.
"At the end of the day, most applications that are running on Linux or Windows can run in the cloud and typically not face huge amounts of errors or issues," said John Treadway, senior vice president at Cloud Technology Partners Inc. in Boston. "The more interesting things around what can't work have to do with business policy."
Prospective public cloud customers in highly regulated industries such as healthcare and finance should check not only with internal information security teams, but also with outside auditors before moving an app to the cloud, Treadway said.
Choose the right cloud and connection
IT pros working on a cloud migration should also assess whether software as a service (SaaS), in which all elements of the application are delivered from a cloud provider's data center, or infrastructure as a service (IaaS), in which only the underlying hardware infrastructure is provided, is more appropriate for a particular application.
Before migrating apps to an IaaS cloud, consider whether SaaS might be a better fit, said Glenn Grant, CEO of G2 Technology Group Inc., an Amazon partner in Boston.
"We look to see if there are applications that can just be changed," Grant said. "If a customer has Microsoft Exchange, and they're really married to it and they have a great use case for it, we'll stand up their own private Microsoft Exchange server in an [Amazon Virtual Private Cloud]. But in some cases ... it just does email, so we say, 'Great, in that case, you should consider Office 365, which is still Exchange, or Google Apps, because you're not leveraging any features that require the extra overhead of having your own server.'"
Experts also strongly recommend checking your bandwidth before moving an app to the cloud. Grant identifies bandwidth restrictions as the No. 1 pitfall his clients run into when migrating to the public cloud.
"For us, a regular gotcha has been being surprised or inconvenienced by the time it takes the data to get from point A to point B, which can throw off project schedules," he said.
Bridge the operational experience gap
Another consideration is the operational culture and institutional mind-set that exists within your organization. Does your IT operations team have the skills to manage your applications in the public cloud? That's an important question to ask before you move, experts say.
"The biggest change, and the one that quite frankly is what drives the pace of cloud adoption, is the operational change," Treadway said. "Technically, moving a workload to Amazon isn't all that difficult ... but locking it down, operating it, managing it, making sure that you've got a clear plan for how to deal with when things go wrong -- that's all new, and a lot of operations teams are so busy fighting day-to-day fires and keeping the lights on in the data center, and they can't actually do it."
In response, IT organizations may want to bring in a managed service provider to run apps in the cloud in the early days while the IT operations team gets its sea legs.
Right-sizing applications is also key to keeping costs manageable in the public cloud, according to Green. IT pros working in data centers with physical hardware are more used to overprovisioning to ensure performance and availability, which is another mind-set that has to change.
"You've got to get the understanding of right-sizing and only taking what resources your app really needs, and having a plan to scale out in the event that your load goes up," Green said.
Game time: During and after cloud migration
While some applications may need to be changed before migration to accommodate the cloud, it is generally a mistake to try to completely automate apps as you migrate them, experts caution. If at all possible, leave an app intact until it is successfully moved into the public cloud. Then, customization work can begin to take advantages of a particular public cloud's features.
"I always do a phased approach," Green said. "You move each application over there, and you test the heck out of it. Will it work, does it function the way I think it will function, does it have the performance characteristics that you expect it to have?"
Testing is the best way to uncover application dependencies you might not have been aware of, Green added.
Use the design created in the on-premises data center at first, experts recommend. Once applications and their data have moved over, create a "sandbox" environment where apps can be modified and decomposed to take advantage of features such as autoscaling.
"You may or may not be able to move straight to an automated cloud infrastructure," said Mark Szynaka, cloud architect at New York-based Cloud eBroker. "There's going to be a two- or three-step process where you mimic what you have in the enterprise even though it's not as efficient as it should be, but it's more familiar."
Neither the testing or app modification should be rushed, experts warn, and don't cave to pressure to do things that are unsound.
"Be the resounding voice of reason versus saying, 'Yes, I'll do that for you,'" Green said. "The IT folks who are doing the migration ... need to learn how to articulate the risks and communicate them to the business."
Finally, an often-overlooked aspect of cloud migration is ensuring application resiliency and disaster recovery (DR) in the cloud.
"DR is not included," Green said. "Your service provider might have an SLA [service-level agreement], but you've got to read the fine print and understand the implications that SLA has for your application. And if you can't live within that ... time frame, you've got to architect a way around it. ... You've got to plan that out and incorporate that into your cost structure."