Cloud Confusion

November 4, 2010 by John Ellis

Near as I can tell, Azure was launched under the premise of a .NET Platform as a Service offering. Microsoft employed some clever tricks to provide a cloud-ready relational database and provisioning tools for Visual Studio, bringing the service nose-to-nose with Google App Engine and Salesforce.com.

Bear in mind that Platform as a Service is quite different from Infrastructure as a Service. PaaS offerings focus almost entirely on the developer, leaving scalability concerns entirely to the service provider. IaaS provides a more familiar server-based architecture, allowing IT to manage infrastructure concerns as they see fit. With PaaS the secret sauce lies with the "automagic" scalability, almost akin to grid computing in some facets. PaaS providers seldom (if ever) dabble into IaaS offerings, often because the data center layouts and architecture are vastly different.

Imagine the surprise when the Azure team announced their "Virtual Machine Role," a Windows Server 2008 R2 virtual machine running in the Azure cloud. This casts Azure as a weird hybrid PaaS/IaaS platform… and given how disparate those services are I’m not confident they can combine well. This either means a) Azure has always just been a league of Windows VMs or b) the ability to have individual virtual machines has somehow been wedged sideways into the platform. Either way it doesn’t instill a whole lot of confidence in the PaaS solution. I can see maturing from IaaS into PaaS, but the other way around seems odd to me. Maybe Azure started as IaaS and then became PaaS and then became IaaS?

My head hurts.

I concede that I may just be a jaded purist. Still, I can’t help but think that Publilius Syrus had the right idea about cloud computing services: "to do two things at once is to do neither." I wouldn’t assume to say a service provider can’t provide a choice between the two, but it seems awfully strange to wedge a virtual server into a PaaS offering.