Cloud computing is the talk of the industry, but not all applications are a good fit for the new paradigm just yet.
Experts see this picture changing, and most predict that within about five years, apps that are currently difficult to deploy will be better suited to a cloudy home.
Right now, applications can be generally divided into two groups: those that are vertically scaled and tend not to play well with others in today’s cloud, and those that are horizontally scaled and well-suited to generic cloud computing.
Well-suited apps “are really collections of lightweight services that talk to each other over common protocols and data formats,” said Kent Langley, vice president at San Francisco-based digital consultancy SolutionSet, LLC. Most Web applications, such as those written for webmail or online retail sites, fall under this description.
Meanwhile, legacy applications, such as SAP, Oracle’s PeopleSoft and accounting applications, and Microsoft’s SharePoint and SQL Server can still pose deployment challenges in a public cloud, depending on their underlying architecture.
Teaching an old dog new tricks
Indeed, sometimes it seems that vertically scaled applications are at cross-purposes with the public cloud. Applications like these, when designed and deployed in traditional fashion, tend to rely heavily on a monolithic database layer. This layer is expected to be high-performing and highly available; it may be difficult or impossible to deploy onto more than one server; and it requires fast, reliable connections between application layers, which may be difficult over wide area network (WAN) links.
“Where we have the biggest challenges and have spent the most time is in moving the legacy stuff,” said Sean Perry, CIO for Robert Half International Inc., based in San Ramon, Calif. “When we spun up PeopleSoft instances in [Amazon Web Services’] Ireland [data center] a couple of years ago, that was really painful, because the performance tools we would normally use within our own data center weren’t really there, and we didn’t have good visibility into the infrastructure that we were deploying on top of.”
Vertically scaled applications can go against the grain of cloud service provider infrastructures like AWS, which offers servers in standardized sizes like small, medium, large and extra large, said Kyle Hilgendorf, principal research analyst for Stamford, Conn.-based Gartner Inc.
“With a traditional VMware environment, you have slider bars, so you can shut down the VM, add more virtual memory to it and turn it back on, and off you go,” Hilgendorf said. “Amazon doesn’t have that.”
Traditional commercial applications aren’t the only ones that fall into this category. Many homegrown custom apps are also designed like this, said Jared Reimer, founder, president and principal engineer at Cascadeo Corp., a Seattle-based cloud computing consultancy.
These apps can be difficult to retrofit for the cloud after they’ve been deployed for a while, Reimer said.
The way that applications are deployed and managed can also affect their suitability for cloud computing. Most on-premises applications are now deployed against a “golden image” virtual machine, and updated incrementally as new patches and other updates arrive. IT pros may also just deploy new virtual machines when the load increases.
In the cloud, automation tools like Opscode Chef and Puppet Labs’ Puppet can be used to completely redeploy applications from scratch when there are updates or disruptions in service; to keep public cloud deployments as efficient and cost-effective as possible, IT admins should also consider grouping fewer application servers behind a load-balancer in a cloud environment rather than simply adding more machines, Reimer said.
Not every deployment, however, will necessarily have success with the software-based load-balancers offered by cloud service providers.
Ray Williamson, CTO of Best Fit Mobile, a mobile app development company based in Austin, Texas, recalled a situation with a mobile application his firm deployed for Michaels, the chain of arts and crafts stores. As traffic spiked on Black Friday, Amazon’s load-balancers provisioned new IP address after new IP address, until there were 22 different addresses on load-balancers connected to Best Fit’s servers – and hardly any traffic actually reaching the back-end machines.
“I think what was happening on Black Friday with their software load balancers, a lot of DNS switching is going on, and so we were just getting lost,” Williamson said. “The requests weren’t hitting our servers.”
Eventually, the firm switched over to a hardware-based load balancer and some physical clusters hosted by Rackspace rather than continue with pure cloud for the application.
The road ahead
Over the next decade, the path to public cloud computing will contain obstacles. Compliance, governance and liability for data breaches are well-publicized concerns. In some cases, those concerns will require landmark litigation and legal precedents before they are settled.
But from a technical standpoint, industry watchers say the solutions to today’s cloud application challenges are well within reach.
First, some applications are being redesigned or redeployed to fit the underlying cloud infrastructure. In some cases, the initial deployment approach may be a case of a simple misunderstanding about the differences between cloud computing and the virtual data center.
“I see a lot of folks do things like simply take Exchange, move it to the cloud and call it done,” Reimer said. “That’s a really bad idea for a lot of reasons.”
But there are also specialized services for running legacy applications in the public cloud, Reimer pointed out. Amazon and Microsoft have published a design for a highly available, scalable SharePoint environment running on AWS.
“People don’t look at it,” Reimer said. “They just take what they’ve built, forklift it, and call it good.”
IT professionals may also follow their data center instincts in deploying things like SQL Server into a Windows instance on AWS rather than using Amazon’s Relational Database Service (RDS), which tends to work better, Reimer said.
In other cases, rather than redeploying an app to make it fit the cloud, the cloud is being reshaped to fit the app.
If AWS isn’t an organization’s cup of tea, there are specialized cloud providers, which in many cases are focused on supporting tricky legacy apps in the cloud. Virtustream, for example, hosts one of the biggest SAP deployments in the cloud using a unique system of resource allocation according to individual CPU, RAM and disk building blocks.
“In some cases the app doesn’t need to change,” said Edward Haletky, CEO of The Virtualization Practice LLC. “The cloud surrounding it has to be purpose-designed to support the application you’re trying to run.”
IT decision makers in some industries are taking matters into their own hands. Community clouds can ease the difficulty of doing centralized processing in the cloud and be purpose-built to suit an industry’s unique needs. The New York Stock Exchange’s community cloud is one early example of this.
Finally, Platform as a Service (PaaS) offerings may change the underlying scalability of legacy applications, allowing them to ride the cloud wave, Haletky said.