
Annoncé par Microsoft le 28 Octobre 2008 et officiellement lancé le premier Janvier 2010, Windows Azure a déjà beaucoup fait parler de lui : il s’agit de la plate-forme de Cloud computing de Microsoft. Cet article est une présentation de cette nouvelle plate-forme pour ceux désirant découvrir le principe et le fonctionnement de Windows Azure.
L’informatique dans les nuages
On ne peut pas qualifier Windows Azure de Système d’exploitation à proprement parler. Il s’agit plutôt d’une extension, d’un prolongement de celui-ci « in the Cloud », comprenez dans les nuages.
Qu’est ce que le Cloud computing ?
Il s’agit tout simplement d’un concept visant à placer internet au cœur des activités des entreprises. Avec le Cloud computing, les entreprises vont pouvoir utiliser des ressources matérielles distantes afin de créer leurs services, accessibles en lignes bien évidemment. Ainsi, les applications et les données ne se trouvent plus sur un ordinateur local, mais bien dans les nuages : des serveurs distants connectés entre eux.
Le Cloud computing marque le passage du SOA au SaaS. Le SOA ( Service Oriented Architecture ) visait à étendre nos applications vers l’univers d’internet, le SaaS ( Software as a Service ) permet de consommer et payer ces applications à la demande et non plus sur l’achat de licence.
Cependant, avec Windows Azure, Microsoft veut aller un peu plus loin : le « S + S » (Software + Service). Il faut voir le « S+S » comme un mélange entre le SOA et le SaaS.
L’hébergement
Pour pouvoir héberger nos applications et nos données, Microsoft a pensé toute une architecture s’articulant autour de ses « Data center ». Actuellement seul deux Data center sont opérationnels, ils sont situés sur le continent Américain. Bien entendu, Microsoft va en construire un peu partout autour du globe et pas n’importe comment. Ces derniers seront architecturés de manière à permettre leur extensibilité et permettront même de greffer des containers construits par d’autres constructeurs.
En ce qui concerne l’hébergement de données, Windows Azure met à notre disposition l’ « Azure Storage ». Pas d’espace disque brut, pas de base de donnée et donc pas de SQL Server. En fait, l’Azure Storage nous permet de stocker des données binaires, des tableaux ou des piles d’élément et d’y accéder via une API spécifique. Ainsi, pour accéder à nos données nous utiliserons une couche logicielle (sur laquelle nous reviendront un peu plus loin) conçue spécialement pour une utilisation dans le Cloud.
Un des gros avantages de l’Azure Storage est qu’il gère la sécurisation automatique des données, la réplication des données (en deux lieux distincts par exemple) ou encore l’optimisation (répartition des charges, optimisation géographique, partitionnement sur plusieurs disques).
Concernant l’hébergement d’application, il n’y a pas d’accès à un quelconque système d’exploitation mais à des processeurs exécutant une machine virtuelle. Ainsi, si l’application a besoin de plus de puissance (que ce soit de manière continue ou ponctuelle) il est possible d’affecter des processeurs supplémentaires à l’application. Il s’agit la de la gestion de la montée en charge de l’application : on va créer de nouvelles instances d’application.
Il existe deux types d’instance d’application : les « Web rôle instance » qui sont des applications web classique accessible via un navigateur Web grâce à un IIS7 hébergé directement dans Windows Azure et les « Worker role instance » qui sont des applications s’exécutant en tâche de fond.
Sachez également que Windows Azure nous permet de stocker deux versions de notre application : une version en production et une version de test. Il est également possible de les intervertir à tout moment.
(source schéma : http://www.indiangeek.net/)
Live Framework et services
Afin de compléter l’offre d’hébergement proposée par Windows Azure, une couche de service vient se greffer juste au-dessus. Cette couche est composée des Live Services, des .NET Services, des SQL Services ainsi que des Microsoft SharePoint Services et Dynamics CRM Services. Voyons maintenant en quoi ils consistent.

Les Live Services : Il s’agit d’une couche logicielle de haut niveau permettant la manipulation des différents éléments intervenant dans l’utilisation d’une application (les utilisateurs et leurs données associés).
Les applications accédant aux Live Services utiliseront le LOE (Live Operating Environnement) qui est le cœur du Live Framework. Ce LOE est composé entre autre d’un Live Desktop (un bureau web utilisable depuis un navigateur) et de Mesh (un système de synchronisation et de partage de données)

Les .NET Services : Il s’agit d’une couche logicielle de bas niveau apportant les fonctionnalités nécessaires à toutes applications informatiques : sécurité et authentification, communication, workflow.
Pour ce qui est de la sécurité et de l’authentification, nous avons à notre disposition l’ Access Control Service qui permet d’authentifier et d’accréditer un utilisateur. Concernant la communication, le Service Bus est un bus logiciel sur lequel des points de connexion permettent de connecter soit des services soit des clients. Enfin, pour ce qui est des workflow, nous utilisons les Workflow Services afin d’héberger et d’exécuter nos processus directement dans Windows Azure. Workflow Service est basé sur WF (Workflow foundation) du Framework .NET.

Les SQL Services : Il s’agit encore d’une couche logicielle de bas niveau permettant le reporting, l’analyse et le stockage de données. Contrairement à Azure Storage, ils reposent sur SQL Server 2008. On retrouve notamment les SQL Data Services permettant le stockage et le requêtage de données. Notez que les données ne sont pas gérées de manière relationnelle mais hiérarchique.
Conclusion
Comme vous pourrez le constater, Microsoft a su analyser a la fois le marché et la concurrence afin de nous dévoiler son écosystème Windows Azure. Sa principale force est finalement une symétrie flagrante entre le On Premises que l’on connaissait déjà avant et le On the Cloud de demain tant sur le plan de l’infrastructure, que sur celui du modèle applicatif ou encore concernant la plateforme de développement.
d7c9082e-31b8-4a50-be73-dc3c4cb38f6b|0|.0
Azure