Is Azure an Operating System or a Framework?
MS is calling Azure an Operating System.
To me, it feels much more like a framework. I am having a bit of trouble defining the two separately. I have a general intuition, but I am not articulate enough to really say if Azure is really an OS or just a framework sitting on top of Operating Systems.
I've just been listening to the Deep Fried Bytes Podcast #20 wherein, they interview Steve Marx, the Windows Azure Program Manager, and he explains it all.
From what I can gather thus far (haven't finished all the podcast) it works like this:
Microsoft have a ton servers running Hyper-V which can run virtualized instances of windows server 2008
You can start/stop/reboot an arbitrary number of these virtual win2k8 servers using an API, and you get charged only based on what you use.
The platform which controls this start/stop/reboot/crash recovery/provisioning/billing/etc is Windows Azure. They jokingly refer to it as the 'windows server overlord'
You define roles for these VM's, which can be either
- web-role, in which you can run any .NET code hosted inside IIS (eg: ASP.NET, httpHandler, etc),
- worker-role, in which you run some standalone .NET code for background processing and so on
- Perhaps more roles once they come out of CTP
You can use the windows azure API's to start/stop them - eg: "Give me 5 instances of my web role and 3 instances of my worker role"
Data gets stored by their storage services, and can be
- Blobs (I'm assuming something like S3)
- Queues (I'm assuming something like SQS)
- Tables - marx mentioned a 'web scale non-relational data store' - something like SimpleDB or BigTable
These VM's have a bunch of other services available to them - Live Services for windows live stuff, .NET services, SQL Services if you need a full-blown SQL server for relational data, Sharepoint services if you want sharepoint, etc.
All this stuff rolled up together is the Windows Azure Services Platform
My take - Giant Marketing fail. Confusion abounds. MS seem to always do this kind of 'roll it all up into a single buzzword' thing though (.NET 5 years ago, anyone?). I really wish they would stop it