There’s a storm brewing in the cloud, and its name is interop. More than a decade into the browser wars that have left developers struggling with two major browsers that work in different ways, cloud services vendors don’t seem to have learned the lesson.
A few weeks ago, IBM pushed the Open Cloud Manifesto, a document that was supposed to lay the tracks for openness and interoperability in cloud computing but which was rejected by the industry’s major players. Google, Amazon, Salesforce.com and Microsoft all said “thanks but no thanks” to the document. Microsoft’s objection stemmed from the fact that the supposedly open manifesto was drafted behind closed doors and presented “as is,” with no chance for other parties to have their say.
But even if the manifesto is flawed — and the industry consensus seems to be that it is — the idea is important. Interoperability requires not just standards compliance today, but a unified approach to evolving those standards and for coping with incompatibilities as they occur in the future. Addressing interop on a day-to-day basis just isn’t enough.
For its part, Microsoft looks like it will have a strong product when it rolls out the final version of Azure. When I spoke to Steven Yi, Microsoft’s director of product management for the Azure Services Platform, he noted that Azure is designed specifically for the cloud, meaning that it handles scaling and multiple instances behind the scenes. In contrast, the Amazon Elastic Compute Cloud (EC2) provides VMs closer to the metal; this gives developers more control potentially, but it also means they have to create their own scaling mechanisms and communication between VMs, Yi said.
On the interoperability side, Azure is in a good position for now. It runs non-.NET technologies like PHP natively, and developers can expose their services over several standards, including REST and SOAP. Azure services themselves conform to these standards, Yi said, and developers can configure applications hosted on Azure to communicate with end users via a browser, on-premises servers or even other clouds. At MIX09, for instance, Microsoft showed the Azure Service Bus connecting to the Google App Engine.
But it looks like the long-term interop vision is to keep a short-term vision indefinitely. When I asked Yi how he thought the cloud manifesto should have been drafted, and what Microsoft would like to see in it, his answer raised a red flag.
“I don’t necessarily think there needs to be a manifesto as long as we’re delivering on customer needs” and interoperating with other services, he said. Yi emphasized that Azure is standards-compliant and that the company is constantly talking to its developers.
That approach is working for now, but it doesn’t leave much room for the inevitable differences that will arise between cloud computing platforms. Vendors will always push the envelope in different directions, and some interoperability problems are fine, but vendors should at least agree on a way of settling their differences within a generation of two of their occurrences.
Cloud computing vendors pledge that interoperability is important to them, and so far the system is working relatively well. But it’s also in its infancy. It won’t be long before vendors start coming out with new innovations — a fix to the overly verbose XML-based communication that most services now use, for instance — that will threaten interop in the cloud.
Nobody was ready for breakthroughs when they came to Web browsers, and now we’re all scrambling to glue the eggshells back together. We should demand that cloud computing service vendors stop the next egg from breaking before it’s too late.