There seems to be a fair amount of confusion out there regarding Windows Azure which was announced today at the PDC. I know vague marketing speak like this doesn't help much:

Build new applications in the cloud - or use interoperable services that run on Microsoft infrastructure to extend and enhance your existing applications. You choose what’s right for you.


The Azure™ Services Platform (Azure) is an internet-scale cloud services platform hosted in Microsoft data centers, which provides an operating system and a set of developer services that can be used individually or together. Azure’s flexible and interoperable platform can be used to build new applications to run from the cloud or enhance existing applications with cloud-based capabilities. Its open architecture gives developers the choice to build web applications, applications running on connected devices, PCs, servers, or hybrid solutions offering the best of online and on-premises.

Basically, like an operating system running on a single computer it manages all the hardware in it, talks to disks handles networking etc. A developer then writes against the operating system, not having to worry about writing drivers to talk to the network, hard disks or dealing with memory management or outputting video onto the screen - that's all handled by the operating system.

Windows Azure expands this, so the operating system also manages any number of servers and all the hardware in between.

At the moment you write an application, and then have the hassle of trying to balance it all between lots of individual servers if you need any scale.

Windows Azure deals with this, and blasts the application out to more servers if extra capacity is needed and scales it back down when its quiet. All you need to do deploy your existing application and include a manifest stating how Azure should deal with it, how many servers you think the baseline should be etc etc. Essentially this allows IT personnel and developers to concentrate on the application and less dealing with the platform and all the hardware that happens to be actually running the application.

At the moment it is a Microsoft hosted service, and it is currently a Technical Preview (which traditionally comes before a beta), however there is no doubt in my mind that within a few years this will be a platform Microsoft will license for hosting providers.

What does it look like on the ground?

There are two key components, the fabric controller which manages the servers, and deploys applications to the individual servers and the a piece of software called the agent which lives on the individual servers, this checks the health of the server, makes sure the application is running, can restart it if it needs to and reports back to the fabric controller.

Simple, right?

So less nonsense about giant evil databases in the cloud please, or Skynet for that matter.

Update: Channel 9 video here which explains it in more depth.