Neoxia s’est rendu à Berlin pour suivre l’édition 2010 des Tech Ed Europe. Les Tech Ed, c’est 5 jours de conférences de haut niveau, dispensées par des évangélistes Microsoft sur les dernières nouveautés technologiques. Ces conférences s’adressent principalement aux développeurs, architectes et IT Pro.

Profitons de cet événement pour faire un tour d’horizon de la plateforme Azure, et de tout ce qui compose, et composera demain, l’offre public cloud de Microsoft. Nous brossons donc ici un tableau à la fois des fonctionnalités actuelles et de celles prochainement disponibles.

Une stratégie PaaS avant tout

Windows Azure, de son nom complet, est depuis l’origine inscrit dans une stratégie PaaS. Microsoft n’a jamais souhaité investir sur une plateforme IaaS, telle qu’on pourrait la trouver chez Amazon. Les concurrents directs d’Azure sont donc Google App Engine, hébergeant des applications Java et Python, et Force.com.

La plateforme Windows Azure est bâtie sur quatre briques :

  • L’environnement Windows Azure, destiné à héberger les applications,
  • SQL Azure, service d’hébergement des données sous forme relationnelle,
  • Windows Azure AppFabric, l’ESB « in the cloud »,
  • Et Windows Marketplace, annuaire des applications déployées sur le cloud.

Le Computing : le nerf de la guerre du Cloud

L’environnement Windows Azure est au cœur de l’offre PaaS. L’environnement s’est construit autour des unités de traitement et de stockage. Du point de vue traitement, il est possible de créer et gérer des instances, chacune ayant son propre rôle. Ces instances sont des environnements d’exécution basées sur Hyper-V et un noyau Windows Server 2008 R2. Trois types de rôles sont proposés :

  • Web Role : L’instance fournit l’ensemble des services permettant d’héberger un site ou une application web. Parmi ces services, les fonctionnalités d’IIS 7.5 sont aujourd’hui entièrement supportées.
  • Worker Role : L’instance héberge le code d’un traitement de type batch, dont on peut lancer l’exécution via une URL REST.
  • VM Role : Ce rôle est utilisé lorsque l’on souhaite déployer dans le cloud une image de Windows Server 2008, sur laquelle est installé un ensemble d’applications ou de briques applicatives nécessaires au fonctionnement d’applications déployées sur les deux autres types d’instance.

Contrairement aux idées reçues, la plateforme permet d’héberger des applications autres que celles reposant sur le framework .NET, à savoir Java, PHP ou C++. Il est même possible de déployer son propre runtime. Côté .NET, justement, les frameworks 3.5 et 4.0 sont supportés, et toute la pile est disponible, d’ASP.NET à WCF, en passant par Silverlight et ASP.NET MVC.

Des services connexes s’articulent autour des instances comme le loadbalancing, le SSL, ou l’accès en Remote Desktop. Différentes tailles d’instances sont disponibles : Extra Large, Large, Medium, Small, et la nouvelle venue, Extra Small. Le mode de facturation est équivalent à celui d’Amazon. Il est possible à tout instant de régler le nombre d’instances d’un certain type. En fixant des valeurs minimum et maximum, il est même possible de laisser Azure gérer le nombre d’instances actives, en fonction de la charge. C’est le rôle du Fabric Controller.

Azure Storage, CDN et Connect

Le deuxième pilier de l’environnement Azure est l’offre de stockage Azure Storage. Microsoft assure la scalabilité de l’infrastructure et la haute disponibilité des ressources stockées. Toute ressource est accessible par une URL REST. Quatre types de stockage sont proposés :

  • Les tables, non relationnelles, stockant des groupes d’entités de type nom/valeur. Ce mode est équivalent à SimpleDB d’Amazon ou Big Table de Google App Engine.
  • Les files d’attentes (Queue), permettant de stocker les messages, de manière non transactionnelle ;
  • Les BLOBs, équivalent à Amazon S3, pour stocker des formats binaires (vidéos, images, sons, etc.) ;
  • Et les Drives, montage réseau NTFS pour les instances.

Ces formats de stockage sont bien évidemment des outils disponibles pour les applications tournant sur Azure. Mais leurs contenus sont également accessibles depuis le SI du client, ou même depuis le Web.

Windows Azure dispose également d’un Content Delivery Network, qui agit comme un cache que l’on peut positionner géographiquement à travers le monde. Enfin, Windows Azure Connect, ex-projet Sydney, permet d’établir un tunnel VPN IPSec entre l’environnement Azure et le SI d’une entreprise. Les scénarios de communication avec un Active Directory ou une base de données, par exemple, ou toute autre ressource locale, deviennent alors très faciles à mettre en œuvre.

SQL Azure

Il est possible d’envisager de déployer un environnement applicatif totalement sur le cloud, à condition de faire appel à SQL Azure pour le stockage des données relationnelles. SQL Azure, c’est SQL Server sur le cloud. Même si certaines fonctionnalités ont été désactivées pour assurer la scalabilité et le loadbalancing, 90% d’entre elles sont disponibles, comme les index et le support de plans de requêtes. Parmi les limitations, on notera l’impossibilité de mettre en œuvre des transactions distribuées, et l’absence de la recherche full-text et de la CLR SQL (pour les procédures stockées). Pour plus d’informations, suivez ce lien : http://msdn.microsoft.com/en-us/library/ee336245.aspx.

Les bases de données déployées sur SQL Azure sont accessibles depuis les Web Role ou Worker Role. Il est même envisageable de les interroger depuis une application située dans le SI d’une entreprise, via Azure Connect. Il suffit simplement de modifier la chaine de connexion. Pour assurer une totale disponibilité et un niveau de performance élevé, les fonctions de loadbalancing et de réplication sont assurées dans le service vendu.

Il est désormais possible de générer des rapports avec SQL Azure Reporting. Cette solution est le portage de Reporting Services sur le cloud. Mais elle offre également plusieurs autres avantages, comme la publication des rapports à travers un portail dédié, les rendant accessibles via une URL, ou la possibilité d’embarquer les rapports dans une application web, grâce au contrôle ReportViewer.

Enfin, SQL Azure Data Sync permet d’assurer une synchronisation des données entre des bases de données, qu’elles soient dans le cloud ou dans le SI, sous SQL Server.

Windows Azure AppFabric

AppFabric, ex-projet Dublin, est la solution ESB proposée par Microsoft. AppFabric se situe entre le serveur web IIS, servant généralement de serveur d’applications, et BizTalk, la solution EAI et BPM.

AppFabric a été porté naturellement sur le cloud, pour offrir les fonctions d’un bus de services aux applications déployées sur Azure. Cet ESB donne la possibilité d’exposer les services développés avec WCF sous forme de web services REST ou SOAP. Windows Azure AppFabric, de son vrai nom, dispose des fonctionnalités d’annuaire de services, de sécurité, de file d’attente de message, de loadbalancing, et de haute disponibilité.
Au-delà de la fonction ESB, AppFabric contient deux autres composants majeurs : Access Control et Caching.

Le Web 2.0 a fait apparaitre plusieurs acteurs majeurs fournisseurs d’identité, comme Windows Live ID, Google ou Facebook. Dans une entreprise, les utilisateurs sont plus habitués à utiliser Active Directory, ou d’autres annuaires LDAP. AppFabric Access Control permet d’intégrer et fédérer tous ces types d’identités, à l’attention d’une application déployée sur Azure. Il devient alors plus simple de gérer un seul modèle d’identité dans l’application cible. Access Control permet également de définir les droits de ces utilisateurs.

Le modèle cloud computing rend difficile la mise en cache de données. La volatilité des instances, notamment, complexifie la gestion des sessions utilisateurs, le cache le plus essentiel dans le web. AppFabric Caching est le composant idoine pour ce type d’utilisation. C’est un cache distribué, utilisant la mémoire, et dont il est possible de gérer la taille. La différence, encore une fois, se situe dans le haut niveau de disponibilité offert par le cloud. Enfin, tout a été prévu pour faciliter l’utilisation du cache par les développeurs, en faisant simplement appel à l’API de Cache de .NET.

Windows Azure Marketplace

Si l’envie vous prend d’utiliser toutes les fonctions d’Azure pour créer votre application SaaS, et de soit mettre les données à disposition, soit de donner directement accès à cette application, Marketplace est l’outil adapté. Windows Azure Marketplace se compose de deux parties :

  • DataMarket, ex-projet Dallas, et
  • AppMarket.

DataMarket fournit les services pour mettre à disposition et consommer des flux de données. Un client peut s’abonner à un flux, qu’il interroge soit via une API REST, soit via le nouveau standard OData, utiliser les données comme bon lui semble, et être facturé en fonction de sa consommation. Un cas d’utilisation classique est l’utilisation de ces données dans une application Windows Phone 7.

AppMarket, de son côté, est l’équivalent d’un AppStore, où l’on pourra retrouver l’ensemble des applications réalisées par les développeurs de la communauté Azure, accessibles en mode SaaS.

Une offre globale et cohérente

Ce petit tour d’horizon montre à quel point Microsoft investit dans sa plateforme cloud pour offrir le service le plus large et du plus haut niveau possible. Nous n’avons pas abordé ici l’ensemble des outils et des possibilités offertes aux développeurs et gestionnaires de production pour créer et gérer des environnements Azure, et y déployer des applications. Ces outils offrent aussi des fonctions de haut niveau permettant de simplement compiler, déployer, débuguer, gérer et superviser les applications dans le cloud. Ce sujet fera l’objet d’un prochain billet de blog.

Microsoft travaille également sur la cohérence de l’offre. Il ne s’agit pas de penser que seuls des unités de traitement et de stockage sont nécessaires pour investir sur le cloud. La réalité est tout autre : les entreprises ont besoin de connectivité, d’intégrer les applications de leur cloud dans leur SI, et de reprendre et faire vivre un existant dont elles ne peuvent pas se débarrasser du jour au lendemain. Là encore l’offre de Microsoft fournit une solution à ces attentes, somme toute légitimes.

Enfin, ces entreprises pensent aussi que la stratégie « all in the cloud » n’est pas forcément la meilleure solution, et que conserver des données stratégiques en interne reste une priorité. En attendant que progresse le long débat que ce sujet suscite, Microsoft ajoute à son offre Azure la possibilité d’avoir son propre cloud privé, en partenariat avec des constructeurs, ou même de reprendre une infrastructure existante et la rendre « cloud aware ». En proposant prochainement une appliance Azure que les entreprises pourront installer sur leur cloud privé, Microsoft est bien conscient que « long est le chemin qui mène au cloud ! Qu’Azure soit avec toi ! »