Apache Libcloud: One Python library for all clouds

Open source library also supports block and object storage, key management, load balancing, and CDN features

Sometimes too much choice isn't a good thing. Case in point: the proliferation of cloud environments, with Amazon as a de facto standard, and a legion of contenders trailing after with their own ideas about how it should all work. Where's the consistency?

Apache Libcloud might have an answer. Originally booted up in 2009 at the now-defunct Cloudkick, it's an open source project bearing a single, consistent Python interface to more than 30 cloud providers and their major services. Python 2.5, 2.6, 2.7, and and above are all supported, along with the PyPy just-in-time compiler.

The 0.14 release of Libcloud, produced in late January, is a mostly incremental update, but the latest changes indicate the project's development is geared toward making it easier to work with fine-grained features common to many cloud providers. For example, not only does Libcloud all you to work with instances in multiple geographic regions (for providers that support it), the API has been reconfigured to ease access. Load-balancing support is also included for many cloud providers, and Google Compute Engine is one of the most recent additions.

Another issue exposed by Libcloud: Most cloud providers still fall short on their API sets in ways that aren't immediately obvious. For starters, many of them don't offer an automated way to determine pricing data for instances or usage. Libcloud has its own repository of pricing data, scraped manually from multiple providers, that can be accessed through its API. However, the documentation insists it shouldn't be used as a substitute for actual pricing statements from a cloud provider.

One possible downside of Apache Libcloud is the lack of a consistent release schedule, like another Apache-governed project, OpenOffice. New Libcloud releases are produced "as soon as enough changes are accumulated in trunk," although what constitutes "enough" seems arbitrary. Still, the project's general level of maturity at this point is more than solid, and anything that introduces a little sanity into a cloud developer's life is likely worth a look.

This article, "Apache Libcloud: One Python library for all clouds," was originally published at InfoWorld.com. Get the first word on what the important tech news really means with the InfoWorld Tech Watch blog. For the latest business technology news, follow InfoWorld.com on Twitter.