Industry


Ads by TechWords

See your link here


Jeff Boles's picture
Jeff Boles

Virtual Frontiers

Cloudy clouds and standards

I had an interesting conversation about standards in the cloud just the other day. We're seeing a lot of buzz about standardization, but if you're out in the trenches using Amazon EC2 today, SalesForce, or an assortment of other cloud technologies, does the cloud really look to you like anything you can imagine a set of standards for? Frankly, it often seems that on one hand, the cloud is way past the point where we can talk about standardization, and, on the other hand, it seems that the cloud is so fuzzy and ill-defined that we can hardly approach standardization in any useful way. But the thing is, this conversation often rapidly spirals out of control because our perspectives about standardization are historically induced to be pretty binary - we look at standardization as an all or nothing approach; either we have a comprehensive, far reaching set of APIs that can do almost anything cloud related (even taking SOAP to the next level), or we have nothing and this motivates us to be free form in our innovation and thinking.

My insistence is that a Cloud API needs to be neither of these. It is not an all or nothing choice. For this market to thrive, especially in light of current dominance by some very big players (Amazon, Google), secondary and emerging players need better interoperability to lend them collective competitive strength.

For the hosting provider, ISP, or any other service provider smaller than the Amazon's of the world, they must have some standardization that ensures their customers that they can turn to the cloud in a long term way, without provider lock-in. Moreover, interoperability is the only way that customers can easily hope to incorporate multiple providers to reduce shorter term sticky issues around availability.

Without going down the path of RESTful APIs and how that will in fact create some level of standardization, when it comes to defining standardization, in my opinion, there only needs to be standardization around a few core "activities" that are targeted more at interoperability than uniform services and structure. The naysayers have a good claim that standardization could stifle innovation, but what I care about, as an end user, is really carrying out a couple of key steps, in the same way, regardless of who the provider is.

But users need to expect when they come "up" the cloud stack, they're going to buy into more lock-in. For example, I don't think anyone on the face of the earth thinks there's hope for standardizing much of anything between something like SalesForce and SAP byDesign. At the same time, those users realize that those solutions are pretty extensible, and that they will eventually be able to store, move, and protect their data in any way they want.

The interesting thing, though, is that we've been talking about and evolving this self describing capability in SOAs for a long time now, and I think we are on the cusp of a "discoverable" solution ecosystem in the cloud. Conceptually (meaning currently out of touch with reality, but eventually plausible) you could have a really complex application where you are using proprietary APIs, but be able to kind of crawl a web of potential services and see which APIs could be replaced or duplicated by other services. Conceptually again, this could mean distributing your application and data across many different providers. Conceptually again, this might mean someday we have some big search engines and/or applications that can examine an application or something you're doing on the cloud, and figure out how to move it or distribute it for better availability. Interesting stuff to think about. Back to reality, the reason I'm talking about this conceptual stuff is that standardized APIs aren't clear at all. We're really talking about a real web of services, where different providers might have different variations of services and only carry out some common functions between them. For example, this one might provide some core database service, and this one might provide ETL, this one provides some data-centric service we haven't even thought of today, and this one might provide all three, but on someone else's block storage that doesn't have a file interface, etc. Standardization won't encompass the entire cloud ecosystem, but is going to come down to very basic core actions, and then we're going to have some defacto standardization in other areas where competing vendors want to offer plug-n-play replacements for the leader.

Perhaps the biggest thing, though, is that I hear the industry talking consistently about a Cloud API. Overall, I can't stand that term. There cannot ever be a Cloud API in a standardization sense. Cloud APIs will surround us, and that won't be the layer that is ever standardized. An API is just an abstraction of actions you're carrying out. A data and services interchange layer is what needs to be standardized. Moreover, if we do nothing, some defacto standardization is going to happen. The cloud is about easy extensibility. It is easier than ever to connect things, and translate between things. Writing a gateway between RESTful services will likely be a piece of cake, so if we never standardize as an industry around specific actions related to data movement and portability, then third parties certainly will. For my part, I even expect that to encompass pretty complex non-cloud APIs -- I'd bet money that within a year we start seeing people pop up with XAM, or Centera, or RISS, etc. to cloud storage gateways and a whole slew of similar services.

At the end of the day, what might come from cloud standardization is moderation of our expectations around huge standards efforts, and more effective interoperability in the data center. Let's call it cloud-induced openmindedness about exposing services and functions. If you're a vendor, and you aren't in this mindset, I can almost guarantee you that the cloud will shift the way you interoperate and expose services, whether you like it or not. When your customers start experiencing the extensibility of the cloud, you'll eventually find your customers turning to the cloud first if they can't find similar easy extensibility in your products.

What People Are Saying

Finally someone who gets it...

I followed a link to this "short-sighted and selfish" view from Lori @ F5's Approaching cloud standards with end-user focus only is full of fail rant and have to say that as an independent consultant representing the needs of large enterprise clients it's not surprising that I should agree with you (representing the needs of end users in general) rather than a vendor.

Cloud computing is a paradigm shift (like mainframe to client server) and attempting to document it all in one rigid "ontology" is a futile exercise, as evidenced by the epic failure of attempts to do so thus far. A birds eye view of the landscape is possible, but only in the retrospective sense. One of the great things about cloud computing is that it is user-centric - for once the end-user has an opportunity to call the shots rather than being told what to do by vendors.

My various efforts (writing the Wikipedia article, setting up the Cloud Computing Community and more recently working on cloud standards starting with Platform as a Service) have all involved looking at what innovation is taking place in the industry and determining the consensus. Now is a very good time to do so as well because there are enough data points but no de facto proprietary standards (though the EC2 API is worryingly close to becoming one).

I tend to take advice from vendors on this topic with a grain of salt because most of their input tends to involve pulling the resulting "open standard" closer towards their particular offering - Enomaly's Unified Cloud Interface (UCI) for example not only focuses on VM provisioning but goes so far as to include them specifically alongside Amazon and Google.

The user doesn't [need to] care about this level of detail any more than they need to care about how a coal-fired power station works to turn on a light. The whole point of the cloud is that it conceals or "abstracts" details that ultimately become somebody else's problem. Using the power analogy again, our "interfaces" to the electricity grid are very well standardised (2-4 pins and a certain voltage cycling at a certain frequency) and "The Cloud" needs similar interfaces (for example for storing data and uploading and managing workloads).

Once we have that computing will be quickly commoditised, which is every users' best dream and vendors' worst nightmare (except for the few, like Amazon and Google, who still have a seat after the computer industry's next round of musical chairs).