The dream of open cloud computing took a couple of small steps forward in the past 24 hours with Apache promoting the Libcloud project to top-level status and with Microsoft releasing a new version of its software development kit for PHP applications on its Windows Azure platform. However, although both moves do constitute noteworthy advancements in the cause of cloud openness, they also highlight how differently we might come to define open in the cloud context.
Microsoft’s enhanced PHP support is a prime example of this new definition of open: the SDK is open source and does give non-.NET users access to more features of the Azure platform, but Azure itself is neither open source nor particularly open, in general. However, by giving developers what Microsoft calls “a ‘speed dial’ library to take full advantage of Windows Azure’s coolest features,” the company is trying to prove that it supports freedom of choice. PHP developers now can have their cake and eat it, too.
Microsoft has SDKs for Java and Ruby, as well, but they’re less full-featured than this latest version for PHP, which aims to give PHP developers an experience comparable to that of .NET developers within Windows Azure.
PHP happens to be a great place to start really eliminating the barriers for non-.NET development within Azure. Many Facebook apps are written in PHP, after all (including Hotel Peeps, which Microsoft counts as a customer) and it’s among the most-popular web-development languages overall. Microsoft certainly didn’t fail to notice that PHP, once relatively underserved in the Platform as a Service space, now has a dedicated PaaS in PHP Fog and support from others, including RightScale, Red Hat (OpenShift) and DotCloud.
The Libcloud case presents a different take on cloud openness. Libcloud gives developers an API to perform a set of standard actions — such as create, reboot, deploy and destroy — to cloud servers across a variety of providers. However, it’s written in Python (there’s also a less-capable Java version) and requires developers to work in Python, which does limit the scope of who’s likely to use Libcloud. It’s an open-source project that opens up developers’ abilities to manage resources across clouds, but it’s only open to the Python community.
Deltacloud, which Red Hat initiated and which is currently an Apache Incubator project, arguably takes a broader approach to cross-cloud management with its REST-based API that works with any application type. Both projects, however, fall short of the ultimate goal of interoperability standards among cloud providers, whereby users could actually move applications and data between clouds without first having to pull back in-house and reload it into its new home.
Whatever open actually means in cloud computing, it’s undeniable that we’re making progress. From open source software such as OpenStack to projects such as Libcloud to just multi-language support on PaaS platforms, we’re at least at a place where cloud users can be confident their applications can be moved from cloud to cloud, if need be, and where users might not even have to learn new APIs along the way. We might never have widely accepted cloud standards, but it looks like we’re coming along nicely on choice.
With that in mind, I’ll be talking at Structure 2011 next month with leaders from the OpenStack and Cloud Foundry projects, who have a lot more insight into how open source projects might ultimately change ideas around both interoperability and economics in the cloud.
Image courtesy of Flicker user Marco Bellucci.