Original URL: http://www.theregister.co.uk/2009/07/28/lidcloud/
Open source API dreams of The Meta Cloud
Calling the cloud of clouds
The Meta Cloud  is one step closer to meta-reality.
Last week, at OSCON , a San Jose startup known as Cloudkick unveiled an open source project that hopes to provide a single programming interface for a host of so-called infrastructure clouds, including Amazon EC2, Rackspace Cloud Servers, Slicehost, and GoGrid. Dubbed libcloud , the project reaches for a world where developers can build an app that's easily shuttled from one cloud to another.
You might call it The Meta Cloud API.
Cloudkick already offers its own RightScale-like  management tool for overseeing the use of Amazon EC2-like infrastructure clouds - i.e. web services that provide on-demand access to scalable compute resources. And with this management tool, you can juggle multiple clouds from the same web dashboard. But with libcloud, the company has expanded on the cloud-of-clouds idea by providing a common API for such services.
"libcloud is useful for anyone who wants to write some sort of software that works between clouds," Cloudkick's Alex Polvi tells The Reg. "If you wanted to, say, develop tools that automatically move your loads to the cheapest provider, there could potentially be a libcloud implementation that does that."
Emphasis on potentially. At the moment, you can use a single API call to list server instances across Amazon EC2 and EC2 Europe, Rackspace Cloud Servers, Slicehost, VPS.net, and GoGrid. And another call lets you reboot servers across both EC2 and EC2 Europe. But that's the extent of it.
The ultimate goal is to create an API that handles just about everything across these disparate clouds - and others, including Flexiscale  and the open source private cloud platform Eucalyptus .
OSCON also saw Rackspace open source  its own Cloud Servers APIs, with the hope fostering an industry standard for infrastructure clouds. But for the foreseeable future, as Amazon continues to resist such efforts, we're stuck with incompatible interfaces ripe for a client library along the lines of libcloud.
Written entirely in Python, the project is hosted here  on Github. ®