Windows Azure unmasked

Azure platform

The first day of PDC 2008 saw Microsoft unveil its cloud computing service framework, Windows Azure. The announcement, by the company's chief software architect Ray Ozzie, carried an implicit message of openness and trust for consumers and business services as well as developers.

We sat down with Mark Rogers, Microsoft's director of cloud services to get a clearer picture of just what Windows Azure is and what it will mean for those hosting applications and services on it.

Most cloud computing platforms need you to rethink how you develop your applications. Google's AppEngine is for Python code only, with data stored in BigTable, running on Google's distributed computing platform. Amazon's AWS takes a different approach, hosting individual virtual servers on EC2, with an entity storage framework in the shape of S3.

Microsoft's approach lies somewhere between these two extremes the Goldilocks of cloud services. You're not limited to specific languages and limited APIs, but you're also not using a utility farm of virtual servers. Instead, Windows Azure looks like one big Windows server, running a set of common services, and with plenty of space for your applications to run.

The starting assumptions are simple: In the cloud developers need the same capable elements as they have in an on-premises environment. That's the starting point for Windows Azure, which is intended to support business and consumer services, building on top of Microsoft's software+services strategy.

Part of the story is the services that run on top of Windows Azure, which include tools for working with interconnected devices, and with the complexities of individuals' social graphs. Rodgers describes it as: "needing to span environments and delivery mechanisms". The result is an evolution of the Windows platform and .NET, "aiming for a symmetry of programming models between on-premise and in-cloud".

Microsoft is trying to articulate its view of the attributes of a cloud platform, what it describes as a new architectural tier and part of what Bob Muglia, senior vice president for server and tools, calls "a fifth generation of computing".

Rogers describes this new web tier as: "transforming the economics of software, with a flexible on-demand infrastructure". You can delve your way into the buzzwords, and what comes out the other end is the idea of a platform that's as easy to use and manage as a server in your own data centre, which you pay for as a utility but which has the massive scale and reliability of a geographically distributed clustered network. Microsoft will be providing planning tools to help businesses scale applications and understand the effects of growth on their costs.

The result is what Microsoft is calling the Azure Services Platform much more than the basic Windows Azure, as it includes Live Services (a mix of identity and authentication tools, with presence and the Live Mesh synchronisation tools), as well as SQL Services and the online Dynamics CRM platform.

You can use these to build your own cloud-based Internet scale applications, with Windows Azure as the foundation that handles scalability and reliability, running familiar ASP.NET and .NET applications. You'll be able to extend existing applications into the cloud, or build completely new applications and services.

If you're building applications on Azure you'll be charged on a usage basis and also for different tiers of SLA. There'll also be additional pricing for applications that work with SharePoint Services and Dynamics CRM Services. ISVs will be able to take advantage of Windows Azure to build their own software-as-a-service applications.

"This is Microsoft offering a platform as a service, letting developers work on a cost-effective, multi-tenancy platform with global reach," said Rogers.

He argues that there are various scenarios where businesses will want to use Windows Azure. It's firstly a way to take existing services into the cloud, as well as a way of deploying new services, and finally as a tool for composing and managing composite SOA applications. Developers will find it a familiar environment, as they can use familiar techniques a form of .NET container in the cloud.

There's one big problem facing anyone developing cloud services: making sure your users are who they say they are. Windows Azure builds on Microsoft's existing identity framework to provide token-less claims based access control model, which can work with many different identity providers and services, using open standards.

You don't need to develop for the whole of the Azure platform at any one time, as there are dedicated SDKs for each of the front-end service platforms. You can download the SDKs for Visual Studio, and start working locally, just to find out what works for you and for your business. As Microsoft rolls out more of Windows Azure over the next year it's going to be interesting to see just who uses it, and how.