(MODAClouds) Windows Azure


This document is part of the MODAClouds deliverable D6.1, thus superseded by it.


This document was created in March 2013, thus its contents might be currently outdated.


Windows Azure is Microsoft's cloud computing solution, an umbrella for various solutions ranging from IaaS, the VM roles, PaaS, the cloud services, and SaaS. However in the current section we focus only on the PaaS aspects, that is the cloud services offer.

Because the Windows Azure model for cloud services resembles closely that of Google App Engine, we shall often compare features or assimilate concepts between the two solutions. Thus in Windows Azure we have: [Azure-2]

web role
Which handle external HTTP requests, usually handling the presentation and user interaction, probably by delegating lengthy work items to the worker roles.
worker role
The counterpart of Google App Engine's backend handler, mapping to the application's logic layer.


application domainweb applications
application architecturen-tier applications
application restrictionscontainer
programming languages.NET, NodeJS, PHP, Java, Python
programming frameworksany (compatible with the desired role)
session affinitysticky sessions, non-deterministic
interactionWUI, CLI, WS
servicesSQL, key-value, blobs, caching, CDN, user management [Azure-1]
monitoring coveragebasic
monitoring levelcontainer
resource providersWindows Azure
multi-tenancymultiple organizations
resource sharing1:1

Notes and limitations

An interesting feature of Windows Azure is how the various roles are provided, because unlike other hosted PaaS's, each role has its own VM, thus increasing isolation and offering more resources per instance.

Like in the case of Google App Engine the various application components should exchange information via queues; however there is also the possibility to host other types of data stores or middlewares on VM roles, the IaaS facet of Windows Azure, thus allowing greater flexibility.

ModaClouds integration

Proving less strict that Google App Engine, and allowing similar types of applications as other considered PaaS's, Windows Azure could serve as a target for deploying classical web applications. Moreover currently it is one of the few feasible PaaS's for running .NET applications.

[Azure-1]Windows Azure Documentation -- Introducing Windows Azure
[Azure-2]Windows Azure Documentation -- Windows Azure Execution Models