Serdar Yegulalp
Senior Writer

Apache Libcloud provides single Python API for all clouds

news analysis
Jun 24, 20162 mins

Developers can use the Python library to manage compute, storage, and containers on over 30 different cloud providers

ladder clouds
Credit: Thinkstock

The Apache Software Foundation has released the first full 1.0 release of Libcloud, a Python library designed to provide a common set of abstractions for working with services on over 30 different cloud providers — including container services and backup-as-a-service.

The premise is that a developer can use Libcloud to access and manipulate any number of clouds in their software without having to worry about the low-level details of how each cloud implements its features. Libcloud works with Amazon Web Services, Microsoft Azure, Google Compute Engine, and any OpenStack-based cloud.

Four basic kinds of cloud resources are available through Libcloud: servers and block storage (e.g., Amazon EC2); object storage and CDN (Amazon S3); load balancing (Amazon Elastic Load Balancer); and DNS-as-a-service.

Working with each type of resource takes a roughly similar syntax, i.e., obtaining a driver, initializing it with an API key or other credentials, then using many standard Python idioms, like context managers, to manipulate the resources on the cloud. A “Deployment” API in the compute library makes it simple to set up SSL-based software on the target server, although it isn’t intended as a full-blown replacement for deployment technologies like Puppet or Chef.

Version 1.0 adds two new types of service APIs, both still in the experimental stage. The container API lets the user deploy containers onto platforms that support them, but also works with local instances of Docker as well as cloud platforms that have container APIs. A new API for backup manages backup-as-a-service for clouds that offer it.

Originally developed at Cloudkick, where CoreOS’ Alex Polvi was a founding member, Libcloud was released as open source in 2009 and entered the Apache Incubator later that year. Until 2011, it supported only compute; after that it began to add support for other services, like DNS. Libcloud has since added third-party service drivers for many smaller providers, and external projects to manage Libcloud itself have also sprung up (e.g., Libcloud.rest, a RESTful API for Libcloud).

Libcloud isn’t the only multi-cloud library for a given language. Node.js has pkgcloud, and Java has another Apache project, jClouds. (Apache Deltacloud, for Ruby developers, was retired in favor of a non-Apache project called Fog.) Python’s popularity as both a scripting and an app-development language all but guarantees Libcloud will find an audience.

Serdar Yegulalp

Serdar Yegulalp is a senior writer at InfoWorld. A veteran technology journalist, Serdar has been writing about computers, operating systems, databases, programming, and other information technology topics for 30 years. Before joining InfoWorld in 2013, Serdar wrote for Windows Magazine, InformationWeek, Byte, and a slew of other publications. At InfoWorld, Serdar has covered software development, devops, containerization, machine learning, and artificial intelligence, winning several B2B journalism awards including a 2024 Neal Award and a 2025 Azbee Award for best instructional content and best how-to article, respectively. He currently focuses on software development tools and technologies and major programming languages including Python, Rust, Go, Zig, and Wasm. Tune into his weekly Dev with Serdar videos for programming tips and techniques and close looks at programming libraries and tools.

More from this author