How Not To Get Stuck In The Clouds

The promise of cloud computing is that a company can easily scale applications up or down, or move them from internal to external locations, to match demand, optimize performance, or lower costs.

In practice, however, users may find themselves trapped in a relationship with a particular cloud vendor, unable to move applications to internal servers or other clouds without rewriting them from scratch.

“Many of the customers we have spoken to simply assume that the cloud is open,” said Brian Goodman, IBM’s manager for cloud engineering and experience. “This is a common misconception because of all of the hype circulating around cloud computing.”

And, while it might seem that vendors are the one who want to lock the customers in, in many cases it’s the customer turning the key, especially as they ask their cloud computing vendor to provide them with customized applications or as they start to integrate cloud applications with some of their own proprietary applications.

“If you’re writing very simple things that are very boring-looking–Web screens that just have a lot of drop down boxes, no Flash or Ajax–then those things can be moved from place to place,” said David Miller, chief security officer at Covisint, which runs a cloud-based human resources application for General Motors Acceptance Corp. (GMAC). However, Miller notes, “the minute you start making them so that they have really good interaction capability, they become more focused on that deployment platform. And when you pick a platform that has ease of movement, you limit yourself in functionality.”

Wall Street firms have been moving operations into the cloud for the past few years. Whether it’s Merrill Lynch and research services firm Cowen and Company moving customer relationship management to Salesforce.com or companies like Wachovia setting up internal cloud operations. A cloud allows a company to get computing when they need it, able to scale up or down at will, using external computing providers, internal server grids, or a combination of the two.

Independence from cloud vendors requires a different approach to application management, said Tony Bishop, founder and CEO of cloud consulting firm Adaptivity in Charlotte, N.C., and the discipline to create layers of abstraction.

Abstraction is what enables a cloud to be composed of different types of computers, by isolating applications from the hardware required to run them. But a further layer of abstraction can help isolate the application from the cloud itself, making the application more portable.

In fact, the same techniques used for service oriented architectures are useful in the new cloud environment, he said. This means writing applications in small pieces, each piece only loosely connected to all others–making it possibly to quickly swap out or reuse parts of the application.

Financial services firms that already run internal grids–networked groups of servers able to work as one to handle difficult problems–an easily adapt those applications to run on external clouds as well, said Ivan Casanova, SVP and Chief Marketing Officer at DataSynapse, a grid computing vendor that has now expanded into clouds.

Looking in the middle

A number of cloud management providers, including middleware vendors Tibco Software and GigaSpaces Technologies, offer products and services that can help. Middleware has traditionally been used inside Wall Street firms to enable hardware from different vendors–BM and Sun, for example–o play well together. Today, middleware may play the same function for cloud computing providers.

“We are abstracting the application from the platform,” said New York-based GigaSpaces’ CTO Nati Shalom. The way this works is that a company writes the application in .Net or Java or C++, then GigaSpaces virtualizes it so that it can run in a cloud environment by isolating the parts of the application that would connect to a cloud’s computers so that they can be replaced with hooks that connect into other clouds. Currently, the vendor supports Amazon’s Elastic Compute Cloud (or Amazon EC2) and Vmware’s vCloud.

Both Amazon and VMware allow firms to use as much computing power as they need it, when they need it and only as long as they need it-without the need of buying or deploying new hardware.

GigaSpaces has been offering cloud integration for a year now, Shalom said. The GigaSpaces XAP Cloud Application Server allows a company to easily switch between the Amazon and the VMware clouds–or their own in-house cloud.

But switching away from Giga-Spaces itself is not as easy, he admits. “On the abstraction layer, just to make things clear, there is no zero lock-in,” he said. “I don’t think anyone provides zero lock-in or zero footprint. But we do as much work as possible to make it as abstract as possible. We use a standard application programming interface.”

As a result, a company can move an existing application over to the GigaSpaces platform in “a matter of days,” he said. The one area that is not fully standardized is data access: “This is still an area where we provide 60 percent abstraction, not 100 percent abstraction. We’re planning to also provide a standard API [application programming interface] to that layer. Once we do that, we’ll also be able to be close to 100 percent compatible. That will happen in the next release [of the product], probably toward the end of the year.”

The newest entrant into this space is Palo Alto, Calif.-based Tibco Software, which released its cloud middleware platform June 3 as invite-only beta, with a final release due out in early 2010.

Currently, the platform only supports the Amazon cloud service, said Rourke McNamara, the company’s head of product marketing. But the idea is to eventually create a middleware platform that will allow customers to switch applications from one cloud to another with a push of a button.

“Things that used to take months take minutes using Tibco server,” he said. “Push a button and all the provisions, all the mechanics, all the plumbing takes place automatically.”

The platform currently supports standard development languages and platforms such as Eclipse, Java and Ruby on Rails. The company is considering adding support for Python, Perl, C++ and .Net, if there’s customer demand. However, the platform is not specifically designed to move existing applications to the cloud, said McNamara, but to build new applications from scratch. “The majority of customers looking to the cloud are looking to build new applications, not move old applications over,” he said.

Article originally appeared in Securities Industry News, which has since closed down.