As cloud computing in its various forms increasingly happens rather than just being talked about, I'm starting to hear the idea of a cloud-computing exchange floated. There are certainly things to like about the concept but I don't see it playing out in pure form anytime soon for reasons that I'll get into.
Let's start by defining what I'm talking about when I say "exchange" here. The idea is that different hosted infrastructure providers would put their unused capacity onto a spot market and buyers would bid for it. Different pricing and auction mechanisms are possible but that's not important for this discussion. The key points are: multiple suppliers, interchangeable product, and some sort of market for the capacity.
Spot markets are well-established in many other areas. Commodity exchanges are probably the best known. However, dynamic pricing based on inventory and demand is also widespread across the travel industry for example. Hotel rooms and airplane seats have a lot in common with compute cycles: they expire if they're not used and the incremental cost of filling them is low.
The idea of having a market for compute cycles isn't new. It came up during the height of the P2P computing craze at the beginning of this decade. P2P computing never wholly went away; SETI@home remains an active project. Univa UD (formed by the merger of Univa and United Devices) has had some success in pharma and finance (although it's less client-centric than United Devices' original vision). But P2P, at least in the sense of harvesting excess client compute cycles, never amounted to something truly important, much less a revolution.
We're also starting to see spot markets in cloud computing today. In December, Amazon Web Services announced Spot Instances in which customers bid on unused Amazon EC2 capacity and run those instances for as long as their maximum bid exceeds the current spot price, which changes periodically based on supply and demand. However, this is different in a fundamental way from a market exchange. Spot Instances are a pricing approach by a single company. Amazon could have any number of different pricing approaches, each of which would doubtless appeal to come types of customers more than others. However, whatever the price and the price model, you're still buying compute cycles and other services from one company, with one infrastructure, and one set of programming interfaces.
So what are the issues with a true market exchange?
Interoperability. Compute cycles (on x86 hardware) may be close to a commodity but the way we access them is not. There has been a certain amount of (mostly de facto) standardization of basic cloud infrastructure services; this often boils down to mimicking the way Amazon does things. However, working against standardization efforts is the push upward by infrastructure vendors to become platform suppliers. (Think proprietary database engines and automated scaling.) And these higher-level abstractions are far less standardized. There is a general push toward more interoperability but the sort of transparent movement that exchange markets require looks to be a long way off.
Security and compliance. These continue to be among the bigger concerns I hear CIOs raise about computing on public clouds in general. It's a complex topic that I won't delve into here. But suffice it to say that whatever risk issues are associated with using one or two vetted public cloud vendors multiply if you're talking about purchasing from many vendors through an exchange. Of course, an exchange doesn't necessarily require that you buy from just anyone but once you're starting to talk about having an extensive certification process for each supplier, you're getting pretty far away from the concept of a spot market commodity exchange.
Andi Mann of EMA put it this way: "If we think of this as code sharing for IT, where airlines may hand off a portion of your flight to another carrier, who knows whose cloud plan you will end up on," Mann says. "If you have an agreement with a supplier who is SAS 70-compliant, would the other carrier also be SAS 70-compliant?"
Computing isn't electricity. The whole electric-grid analogy makes for a nice storyline but falls down in important ways. Cloud computing isn't really a commodity the way power from the grid is. Economies of scale would seem to happen at levels that. What's more, cloud computing isn't just cloud processing but this fact often seems to get forgotten. There's usually persistent data as well--and that requires persistent storage. To be sure, some types of computing consume a lot of cycles relative to the number of storage bytes. But for many purposes, moving where computing happens means lots of bandwidth (and time) to move data as well.
Lest I come across as unduly negative, I do believe that it will become easier to manage computing workloads more dynamically and thereby move them from place to place and add capacity to them on the fly. Perhaps the end game is a market exchange--or at least an architecture that supports a market exchange for those wanting one. But that's a huge leap from where we are today and makes some already difficult problems perhaps an order of magnitude more difficult.