The Apache Foundation today promoted Deltacloud to top-level project status. Deltacloud’s goal is to create a RESTful API for interfacing with cloud providers, both public and private. The effort can be summed up by the project’s slogan: “Many clouds. One API. No problem.”
The heart of the problem Deltacloud solves is the inconsistencies that exist between different cloud implementations. Systems like Amazon, Eucalyptus, GoGrid, IBM, Microsoft, OpenStack and Rackspace all have different interfaces for programmers to use. Deltacloud is designed to bring a single, unified API to all of these clouds, and more.
The project was created in 2010 when David Lutterkort, a principal software engineer at Red Hat, proposed Deltacloud to the Apache Foundation. The initial rounds of coding were done by Red Hat, with wider participation coming as the project moved forward.
When asked what the difference between Apache Libcloud and Deltacloud were, Lutterkort responded, “Apache Libcloud and jclouds are libraries and are specific to each implementation’s language. jclouds is for Java, Libcloud is for Python. We’re trying to provide small providers who might want their own cloud, with an API to offer. We make it easy.”
Today, the project consists of an API server and various client libraries targeted at popular languages, such as C and Ruby. Using the libraries, developers can craft provisioning systems that will work across multiple vendors’ cloud installations. Through the Deltacloud API, developers can create, remove and manipulate virtual machine instances within a cloud system.
The long-term implications for the project are a reduction in vendor lock-in from cloud providers. The Apache Foundation also states that the project is designed to be easily implemented on the provider’s side. Thus, both public and private clouds, such as Amazon’s EC2, Eucalytpus, GoGrid and OpenStack, are all supported in Deltacloud.
Lutterkort said that the vendor lock-in problem is bigger than just APIs, but Deltacloud at least solves that portion. “As far as APIs are concerned, this gives small providers a great starting point for their APIs. You want your APIs to have market penetration, but you don’t want some vendor making changes to the API all the time,” he said.
But Deltacloud is not quite a standard for RESTful cloud-provisioning APIs. That work is being done in the Distributed Management Task Force (DMTF). Lutterkort said that the work to create a standard API for cloud providers is not going unnoticed by the Deltacloud community.
“If you look at the whole standardizing cloud API landscape, there are two approaches,” he said. “There’s the open-source road that Deltacloud has been following, and there’s the organization track. In the open-source world, I think we’re the only ones that do a RESTful API that’s not controlled by a vendor. You could argue OpenStack is like that, but it’s directly connected to the implementation you use,” meaning OpenStack won’t run in Amazon EC2.
Thus, while Deltacloud is pushing for a standard provisioning API from an open-source angle, the DMTF’s efforts are from an organizational angle. But the two efforts are not mutually exclusive. Lutterkort said that his coworkers at Red Hat are working with the DMTF, and that the first working implementation of their standards should be Deltacloud.
“We’re adding a second front end to Deltacloud to use the DMTF’s standards,” he said. “It’s kind of a proving activity in the standards development. Going down the road, you’ll be able to start the Deltacloud API or have a front end that lets them talk DMTF.”
For now, Deltacloud is at version 0.5.0, but Lutterkort said many inside the project have been asking for a 1.0 release. Now that Deltacloud has been promoted to a top-level project at Apache, this could happen, he said.