Is mass acceptance of cloud computing inevitable, given that most major IT vendors are shouting it from the rooftops and IBM even talks about the cloud in a TV commercial? The debate rages on. For software developers, however, it has become clear that cloud platforms such as Amazon Web Services and Microsoft Windows Azure are expanding options for their application deployments. (Windows Azure currently is in beta preview and moves to a full production stage on 1 February.)
With computing in public clouds, applications are deployed on third party servers and accessed over the Internet, saving enterprises infrastructure costs but raising concerns in areas such as security and control.
In a recent survey on cloud development, Evans Data found that 61 percent of developers report that at least some of their IT resources will move to a public cloud within the next year. Forrester recently recommended that application developers embrace cloud platforms in 2010 because it will speed delivery of custom applications and is well-suited for web applications.
But Evans also found that more than 87 percent of developers say only half or less than half of their resources will make the move to the cloud. Instead, the hybrid cloud, which offers a gateway to a cloud while not committing all resources to a cloud, will dominate, Evans says. IT shops don't have to surrender all control and security to an outside vendor under this model.
Developers have lots of reasons to embrace the cloud
Many developers who've moved to the cloud are pleased. "A lot of [the benefits] really revolve around the TCO [total cost of ownership] and the relative simplicity," says David Hatter, president of Libertas Technologies. "I love the fact that I don't have to touch hundreds of desktops" to upgrade software, he says.
Libertas has built web-based business and mobile applications. "Virtually everything we do is really cloud-based at this point. We don't do any kind of client-server stuff," Hatter says. Libertas has been using Amazon Web Services and, as a .Net-oriented shop, Windows Azure.
Chiming in with more love for the cloud is Dennis Salguero, a .Net programmer. "All of a sudden, you're given a window into all these resources that are out there as far as computing power at a relatively reasonable cost," he says.
At WBP Systems, company owner and developer Ben Smith cited economic benefits of cloud computing for smaller companies: "The reason why the cloud works is it's a scale thing." IT systems can be replicated over a "huge number of machines," says Smith, who has built the Heap CRM and Torch Project Management cloud applications.
Heap competes with Salesforce.com, also a cloud-based application. The cloud helps Heap compete, says Smith. "It lets you scale better," he says.
Another cloud developer concurred. "I'd say the cloud is programming language agnostic," says Cameron Pope, who has developed applications running on the Amazon and Rackspace clouds.
Pope, who cited a video transcoding application as perhaps his biggest cloud endeavor, noted deployment benefits for the cloud: "The biggest thing I love about developing apps for the cloud is, in a way, it's very liberating." Previously, developers had to find somebody to host a server, set up physical infrastructure, and sign a contract to get their application online. Now, there are numerous cloud-based hosting providers, he says.
The cloud offers additional servers on demand, he says. "You only pay for the capacity you use," says Pope.
At DataArt, a software development outsourcing venture, the company is readying cloud development efforts with some internal development. But DataArt has not yet developed any cloud applications for customers. One of the company's clients wants a cloud-based medical records system. "They're going to build it from the ground up and they want Azure to be their platform for developing," says Roman Chernyshev, DataArt's vice president of engineering. DataArt's client hopes to start out on Azure, then move their application in-house, since it might be cheaper to run its own data centre once it has thousands of customers, Chernyshev says.
Moving to the cloud means just minor differences for developers
There are some differences in developing cloud applications, such as the need to debug on a staging environment, says Chernyshev. "It's a little bit different, but I can't say that it's more difficult or less difficult. It's just another way of building applications," he says.
Pope also saw little difference. "I would say if you're a web developer, then developing an application for the cloud isn't much different from a programming standpoint than developing an application on say, another type of server environment," he says.
Cross-cloud migration, data security remain issues
Although development practices aren't greatly affected by a move to the cloud, there are meaningful implications from the differences in cloud platforms.
For example, Domina Technology Solutions is using Amazon Web Services, the Google App Engine cloud, and Force.com from Salesforce.com in cloud projects for the insurance market. "We develop on Force.com because it's way ahead of the curve on multitenant capabilities and cost, also," says Ray Hudaihed, CTO at Domina. Domina uses Amazon's service for data storage and App Engine for number crunching.
Movement between clouds also remains problematic. "There isn't usually a lot of movement because once you have everything set up, it can be actually pretty painful to switch," Pope says. "Usually, by the time you think of switching, you have servers that are connected to each other, you'd have to move all your data, you'd have to reconfigure all your servers" and rewrite scripts to manage and monitor the migration, he says.
That migration pain is why Internet pioneer Vinton Cerf wants standards for data movement between clouds. And in the meantime, there are some solution providers that make it easier to move, Pope says.
Sensitive data presents issues for the cloud, according to Pope. "If you have really sensitive data, you might want to host that somewhere where you can see and inspect," he says. "The biggest aversion [to public cloud computing] in general is you're basically trusting someone else to make sure your data doesn't lost," says Libertas' Hatter.
Still, even with these issues, it's clear that the public cloud is an increasingly useful option for developers to host at least some of their applications in.