LOS ANGELES -- A couple days after Microsoft announced Windows Azure at PDC, the cloud computing platform still leaves quite a few questions unanswered. The details that are out aren't set in stone, and Microsoft's chief software architect Ray Ozzie warned attendees at PDC that while they will be able to play with a pre-beta release of Azure, there's no guarantee that what they write will be compatible with the end product. But Ozzie hit on one of the more important issues when he alluded to the Windows Azure service level agreement, which he said will be one of two main factors for pricing -- the other being how much you use the service.
From what we have seen of Azure, Microsoft is trying to differentiate itself from Amazon's EC2 by offering -- well, forcing -- a helping hand in the form of the Azure framework. EC2 lets companies rent out CPU cycles and do more or less whatever they want with them, but the flip side is that it leaves administration up to its users; they have to set up and maintain their own virtual machines, and Amazon just runs them.
Azure, in contrast, won't give developers direct access to VMs. Instead, it will provide a cloud computing framework that will run developers' .NET applications. That model could make it easier to deploy applications in the cloud, but companies will lose control over their environments.
Microsoft and Amazon are just two of the cloud computing approaches that could eventually succeed. A couple years ago, Salesforce.com branched out from its core software as a service (SaaS) CRM product and opened its platform to third-party developers. Salesforce.com has its own programming language, Apex, which it created specifically for writing programs that output to browsers under the standard SaaS model. Apex includes built-in hooks to store and retrieve data, so it essentially provides a layer of abstraction even higher than Azure's.
It's still too early to say whether cloud computing will take off at all. One likely scenario is that companies will keep processes that handle sensitive customer data on-premise, but farm other server operations to the cloud. If that decoupled architecture gains traction, it could be both a beneficiary of and a major driver for SOA.
One group of developers I talked to at PDC said that the discussion about cloud computing will itself take two or three years, so the fact that Azure isn't commercially available yet isn't a big factor for them. But they stressed that services' SLAs will be at least as important as the framework that cloud computing providers adopt. Those developers work for a company that has contractual service obligations to its clients, so any cloud computing platform will have to offer them an SLA that is at least as strong as the one they have with their customers.
Because Azure is providing a full-fledged platform, its SLA has to address more than just uptime. In the standard server world, even minor OS upgrades can break applications, and many IT shops run their software on old systems rather than paying to fix incompatibilities. But with Azure, Microsoft controls the operating system, so companies could be forced to update applications or have the rug pulled out from under them. One Microsoft engineer I spoke to said that problem hasn't been thought out yet, but issues like that will be vital if companies are to invest serious resources in Azure or other cloud computing platforms.