Ballmer in the clouds: 'Microsoft redefines, Amazon repackages'

Asked if Microsoft is truly innovating in the race towards so-called cloud computing - not just reacting to what companies like Amazon and Google have done - Redmond chief Steve Ballmer pointed to Windows Azure, the company's sky-high development platform.

"I think Azure is very different than anything else on the market. I don't think that anyone else is trying to redefine the programming model," Ballmer said this morning during a cloud-happy speech at the University of Washington, broadcast live over the web.

Azure, he implied, looks further down the horizon than something along the lines of Amazon's Elastic Compute Cloud (EC2), which predates Azure by several years. "I think Amazon has done a nice job of helping you take the server-based programming model - the programming model of yesterday, that is not scale-agnostic - and then bringing it into the cloud," he said.

"On the other hand, what we're trying to do with Azure is let you write a different kind of application, and I think we're more forward in our design points in a lot of things we're doing, and at least right now, I don't see the other guy out there who's doing the equivalent."

Whereas Amazon EC2 offers on-demand online access to compute resources that can run just about anything - spinning up individual server instances for the developer - Azure provides an added a level of abstraction. You don't see the server instances. You see Microsoft's development tools, and they scale up VMs behind the scenes as required.

Microsoft director of platform strategy Tim O'Brien paints "infrastructure clouds" like Amazon EC2 or Rackspace Cloud Servers as mere VM vendors. "If you have an app today that runs on Windows or Linux, Amazon can give you a VM and you can put it up in their data center," he said, during a recent conversation with The Reg. "It's programming-model agnostic. It doesn't matter what tools you use or what frameworks. But there's more work involved."

For O'Brien, this sort of thing is best for quickly prototyping new apps or moving existing apps onto a remote infrastructure. By contrast, he argued, a "platform cloud" like Azure makes life easier for those looking to build new, large applications. "As a developer, you build your app on Windows Azure, and we take care of all the underlying infrastructure for you." It handles scaling, service management, health monitoring, and so on.

But at the same time, Azure restricts what dev tools you can use, and despite Ballmer's claim that no one else is doing this sort of thing Azure is doing, there are some conspicuous services that aren't that far away - most notably Google App Engine.

Google App Engine is also an online platform for building and deploying applications, and it too provides a level of abstraction that hides more of the infrastructure nitty-gritty. Google gives you some choice on what tools you can use - you can now code in Python or Java, for instance - but the list is tightly constricted to conform with Google's famously-distributed back-end infrastructure. And it places equally tight restrictions on the way you code.

For instance, Google App Engine terminates a system request if it takes more than 30 seconds or returns more than 10MB of data. And in order to use Google's proprietary BigTable distributed database, you have to carefully follow its data model, which, yes, breaks things up into tiny pieces.

Ballmer didn't mention Google App Engine. But he did mention another area where Azure will depart from App Engine - and Amazon EC2.

My own private Azure

Big Steve made a point of saying that in the future, developers will be able to use Azure not only in the "public cloud" but from their own "private clouds" - ie their own data centers. "It will be many years before many governments will grow comfortable with their data or their citizen data living outside the jurisdiction," Ballmer said.

"This company is not likely to build a public cloud in Slovenia anytime soon. So someone should be able to implement a Windows Azure cloud in that country. They should be able to buy a device that looks like that - or a set of devices that looks like that - and have that be affiliated for the rapid advance of technology with other things going on the world."

Which is only a tad misleading.

Microsoft has no intention of providing a copy of its Windows Azure software infrastructure for private use. But it will roll certain aspects of that infrastructure into products like its Windows Server operating system and Microsoft System Center. "There are a set of things in the cloud that are unique to Windows Azure," said O'Brien, pointing to, among other things, the fabric controller that sits between your application and the Azure infrastructure. "These kinds of capabilities, over time, will show up in products that customers will be able to buy and deploy on premises...

"I hate to use words like parity and symmetry, because they set sky-high expectations. It's not going to be perfectly symmetrical because there are some things that you want to do in the cloud that you won't do on premise - and vice versa."

What's more, despite its emphasis on that added layer of abstraction, Redmond does intend to offer developers access to individual VMs. But these are intended for testing new applications and migrating existing apps from private data centers, and yes, they will only run Windows and certain predefined services.

"This will be a version of infrastructure-as-a-service that's constrained," as O'Brien tells it. "You won't be able to load up any arbitrary service you want to load up. We're going to give you a constrained base Windows 2008 image, and it's constrained in a way that Azure knows how to manage it." This option will arrive at some point this year.

If Microsoft is "redefining the programming model," it's doing so with Redmondian limitations. Which is only what you'd expect. The way we see it, all this comes down to personal preference. Do you want control over your VMs or not? Do you wanna code in Java or .NET and C#? But Ballmer doesn't like the suggestion that Microsoft is merely a follower.

"All great companies have a mix of proactive and reactive muscle," Ballmer said, as an answered that pointed question about whether Microsoft was merely reacting to the rest of the market. "Nobody ever wants to have to react to anyone else. Everyone would to have invented everything and be first with everything, but that's probably not practical. I'm keen on increasing our hit rate, in terms of early and often."

After pointing to Azure as one example of significant Microsoft innovation, he pointed to Bing. "There's been more innovation in the search market in the last year than in the preceding three," he said. "Why? Because there's been competition."

His eventual summary: "When it comes to most of these cloud dimensions, I feel we're at the front or tending to the front." ®

Update: This story has been updated to remove a suggestion that Azure locks you into Microsoft dev tools. It supports Eclipse, Ruby, PHP and Python.