Azure isn’t IaaS and that’s a good thing
photo: creative common by linh.ngÃ¢n
When Azure first came out there were nothing but Web Role and Worker Role. You can't talk to Worker Role directly. You gotta write partial trust app. There are all this limitations that made it really cool at the same time. I can just stop worrying about the hardware, OS, IIS and all that. Focus on the app!
Since the SDK 1.3 release, now we got full IIS support, remote desktop in into any roles, even perhaps installing/configuring OS level stuff through startup tasks. When I heard Azure is releasing VM role , I thought that Microsoft is backing down on the whole pure Platform-as-a-Service (PaaS) thing. A Role is now a VM++ (’¦ or is it really VM--).
So has Azure become an Infrastructure-as-a-Service (IaaS) offering?
Short answer: no.
Nothing but Windows
I won't try to explain why Azure isn't IaaS in a great detail, other people have done a better job than me.
However the one reason that stuck the most for me in saying Azure isn't an IaaS is the lack of various guest OS support. For better or worse, we have to stick with Windows if we want to use Azure. Albeit you can use the different variant: Server 2008, Server 2008 R2.. heck you could even use Server 2003 if you really feel like it.
With more responsibility
VM role is still just like Web and Worker role. There are a few things that a Role has to do, interacting with the underlying Fabric (lifetime management, health, etc.). But The major difference is you are now responsible for the OS image : so you're on your own for updating the OS, etc.
It's not all bad
Is this a bad thing? No!
I'm a big proponent of PaaS and I don't like caring for every single knob that I can tweak on the OS level.
I'm not an IT Pro and don't want to spend my time on learning how to become one. Azure focuses on making it easy for us devs to deploy our app to the cloud (albeit with the balance of making it Enterprise friendly which often comes at a cost of the increase in complexity).