The Universal Cloud Interface: Applying the Semantic Web to Cloud Interoperability

unifiedcloudOne of the big debates these days when it comes to cloud computing center around portability and interoperability between providers. That is, if you build an application on Amazon's EC2 or Google's AppEngine or, or store your data on or Amazon's S3, how hard is it to port your application or move your data to another cloud provider? If you develop on a given Platform, how locked-in, or not, are you? And beyond that, could developers benefit from having standardized APIs to develop to without having to learn a new model and interface each time. As you'd expect, there's no easy answer to this.

Given that open standards and processes can play a role here, just this past weekend, Enomoly's Reuven Cohen, setup a web site as part of a new initiative on this front, a Universal Clound Interface. As he describes it:

The concept is to provide a single interface that can be used to retrieve a unified representation of all multi-cloud resources and to control these resources as needed.

The Wikipedia describes the semantic web as "a vision of information that is understandable by computers, so that they can perform more of the tedious work involved in finding, sharing and combining information on the web." Similar to this vision for a sematic web, why not apply those same philosophies to the underlying control structures of web (i.e. the cloud) itself? A kind of Semantic Cloud Infrastructure capable of being adapted for a variety of methodologies / architectures and completely agnostic to any specific API or platform being described. An general abstraction that doesn't care if you're talking about a platform (Google App Engine, Salesforce, Mosso etc), applications (SaaS, Web2.0, email, id/auth) or infrastructure models (EC2, Vmware, CIM, Microsoft, etc).

The key drivers of a unified cloud interface is to create an api for and about other api's. (One abstraction to Rule them All) A singular abstraction that can encompass the entire infrastructure Stack as well as emerging cloud centric technologies all through a unifed interface. What a sematic model enables for the UCI is a capability to bridge both cloud based API's such as Amazon Web Services with existing protocols and standards, regardless of the level of adoption of the underlying API's. (Develop your application once, deploy anywhere at anytime for any reason.)

The UCI is new and it will be interesting to see how this evolves. For more, see Reuven's blog post on the announcement: Semantic Cloud Abstraction. [via James Urquhart]

And we can expect to see lots of other variations on cloud standards this year, either community-driven or vendor-driven. Take for example that less than two weeks ago, cloud infrastructure provider GoGrid announced they will make their cloudcenter API OpenSpec available via a Creative Commons licensing model. It's their core API, which as they describe in their release:

The GoGrid API is for Developers, System Administrators, SMBs, Start-ups, Web 2.0 companies and Resellers, providing them the freedom to control the GoGrid Cloud Infrastructure via the clearly documented public API. The GoGrid API uses a REST-like Query interface where queries are sent via HTTP GET or POST requests to the API server. API keys are easily generated and managed within the GoGrid Portal, can have role-based access controls (RBAC) applied to them and are unlimited. The current API output formats are JSON and XML. All commands delivered via the API are immediately reflected within the GoGrid web interface. Users can, for example, build API scripts that "get" available unused IP addresses, "add" servers with the unassigned IPs, and "power" the servers up.

Regardless of how it ultimately evolves, the more that open standards and processes can play a roll in the evolution of the web as platform, the better.

Be sure to read the next Standards article: Yahoo's YQL Adds Support for Microformats