Microsoft's Windows Azure and Amazon's Elastic Compute Cloud tackle two very different cloud computing technology problems today, but are destined to emulate each other over time, Microsoft cloud official Tim O'Brien says.
Whereas Windows Azure is a platform-as-a-service cloud, giving developers the tools they need to build and deploy web applications, Amazon EC2 is primarily an infrastructure-as-a-service cloud, offering on-demand access to customisable virtual machine instances.
Azure simplifies the building of web applications in a way that Amazon does not, but Amazon's cloud-based virtual machines have the benefit of working with multiple programming models, O'Brien says, predicting that over time Microsoft will move more into infrastructure-as-a-service and Amazon will cross over into platform-as-a-service (PaaS).
O'Brien, senior director of Microsoft's Platform Strategy Group, discussed his take on the cloud market in an interview with Network World, as well as a public presentation at the recent Cloud Leadership Forum, hosted by IDC and IDG Enterprise.
"It's a double-edged sword," O'Brien said in the interview. "The reason people like infrastructure-as-a-service is because it's programming model agnostic. The bare metal VM doesn't care what language you wrote the application in, it doesn't matter what tools you use and what run times you've targeted. If it runs on Windows or Linux, give it a virtual machine and it will run just fine. The problem is it's a lot of extra work. You're responsible for that virtual machine the same way you're responsible for a server sitting under your desk. You're responsible for turning it on. You're responsible for turning it off. You're responsible for applying a patch or an update. If Red Hat applies a Linux patch, and you have a Linux VM running on Amazon, you have to apply that patch yourself. They won't do that for you."
But there are shortcomings in the platform-as-a-service model as well, O'Brien acknowledges. The biggest problem with PaaS may be difficulty migrating existing applications from the internal data centre to the cloud.
"Platform-as-a-service has a different set of trade-offs," O'Brien says. "All of that stuff is completely abstracted away, it's a friction-free development, you basically code up an application, you hit deploy and it'll go run on the platform that's supplied by those run times. So in our case its PHP, C Sharp, in the case of Google App Engine it's Python and Java." While building new applications is easy, and removes the need for owning internal hardware and software, other than a Web browser, "part of the challenge there is it's not necessarily optimal for migrating existing applications."
Microsoft has already announced that "at some point [in the next 12 months] we will be offering the ability to provision a bare-metal VM, and run your application on that," O'Brien says. While Amazon provides a variety of Windows and Linux virtual machine images through EC2, the company's Web Services business offers a variety of other tools that might be useful to developers, including databases, storage services and load balancing.
O'Brien predicts that just as Microsoft moves into IaaS, Amazon will build a PaaS offering that more closely resembles Azure than anything Amazon offers today. Amazon's public relations department could not be reached for comment Friday.
"It's not a matter of one is better than the other; they accomplish different things," O'Brien says. "But I think what you'll see happen in the marketplace is a convergence of those two, where infrastructure-as-a-service providers like Amazon will move up the stack toward platform-as-a-service. You'll also see PaaS providers like Microsoft provide some of that infrastructure-like capability, just so we can handle those migration scenarios much easier, and the lines will get blurred."
In his speech at the Cloud Leadership Forum, O'Brien said public cloud services are generally not providing as much customization as customers want, but the cloud model is gaining popularity both among users who want to sidestep their companies' IT departments, and from small businesses that want to get out of the IT business.
Many small businesses "don't want to be in the IT business," O'Brien said. "Private cloud is not in their vocabulary. They want to run their businesses on PCs and mobile phones and get out of the IT business entirely."
Private clouds simply don't offer the same economies of scale as public clouds do, he said, claiming that per-server TCO in a 100,000-server data centre is less than half the per-server TCO in a 1,000-server data centre.
Microsoft's goal in the cloud is to offer customers the same functionality they would expect if they install the software themselves, he said. "If you can write an app for Windows Server you should be able to write an app for Windows Azure," O'Brien said.