By craigmcc on Mar 17, 2009
I am sitting here in New York City, at the CommunityOne East keynote address, where Sun is making public two overlapping projects that I have been working on for about 18 months (without being able to talk about it, grrr). We're announcing the APIs for the Sun Cloud, and also the future availability of the Sun Storage Service on a public instance of our infrastructure. Kind of fun being on Broadway (well, the hotel is right next to it :-) for this kind of an event.
For the Cloud APIs, we are defining a REST API that will ultimately present all of your cloud resources, unified in a concept called the Virtual Data Center (or VDC, for short). Within a VDC, you can model anything from a simple firewall+webserver up to a large, complex, multitier web application ... and deploy it with a single request. Need to add a new Apache HTTPD instance to your web tier? No problem -- create a new virtual machine (VM) with the same characteristics as one of your existing instances, attach it to the appropriate virtual private networks (VNets), deploy, and start. That's the way it should be ... easy, manageable, and controlled via REST web service calls, using whatever client technology you like.
For the API design itself, I've been pleased (and challenged :-) to spend a bunch of quality time working with Tim Bray on creating an API that strongly conforms to the REST paradigms, provides a unified view of all the cloud resources, and is easily consumable by clients. For those who do not wish to program low level HTTP calls themselves, we will also be providing higher level language bindings to this API, initially in Java, Ruby, and Python. I will have more to say about the API, and the concepts behind it, in the future.
Not everyone wants to manage their cloud resources through a web service API, and would prefer to interact with a GUI design tool to build a visual model of their application. We are leveraging the technologies acquired through the acquisition of Q-LAYER to provide exactly that kind of capability. The demo during the keynote address showed an installation of a multitier instance of MediaWiki, designed with the GUI tool, and deployed by pressing a button (and using low level APIs underneath the covers).
What's also interesting is that Sun is releasing the API specification itself under the Creative Commons with Attribution license. We want to work with the community on the evolution of this API, and embrace working with others who want to provide implementations of this API for their own cloud infrastructure. Indeed, as announced at the conference, the Eucalyptus project (at the University of California Santa Barbara), who has built a cloud environment that integrates with Amazon APIs, will also be implementing the Sun Open Cloud APIs as well.
The API documents themselves are hosted at http://kenai.com/projects/suncloudapis. The spec documents are on the wiki, and there is a forum for discussion as well (sign up for a free kenai.com login in order to participate in this form).
See you in the cloud!