Windows Azure : le mode d'emploi en images
Le nouveau Windows Azure transforme Internet en un vaste serveur virtuel, avec à la clé de nombreuses possibilités pour les développeurs. Démonstration.
01net.
le 06/11/2008 à 16h30
Un système d’exploitation pour datacenters
Windows Azure est aux datacenters ce que Windows Vista est aux PC de bureau. C’est un système d’exploitation capable de piloter des serveurs, des commutateurs, des baies de stockage, etc., répartis dans des datacenters de la même manière que Vista pilote les composants (disque dur, mémoire vive, etc.) et les périphériques (écran, clavier, souris, etc.) d’un PC de bureau.
Un agent Windows Azure (un peu l’équivalent des pilotes de périphériques sur un PC de bureau) est installé par Microsoft sur tous les serveurs installés dans ses datacenters. Tous ces agents dialoguent en permanence avec un contrôleur central (un
Fabric Controller) piloté par Windows Azure qui gère les ressources de calcul et de stockage. Ce chef d’orchestre fait abstraction des matériels installés dans les datacenters et fournit aux applications un système de fichiers virtuels, des droits d’accès, un ordonnanceur de tâches, etc. Bref, les applications Windows Azure s’exécutent sur un serveur virtuel sans se soucier du matériel utilisé.
Le développement se fait sous Visual Studio
Comme la plupart des systèmes d’exploitation, Windows Azure est programmable c’est-à-dire qu’il peut exécuter des applications. Microsoft fournit un kit de développement (Windows Azure SDK, pour Software Development Kit) et un pack d’outils baptisé Windows Azure Tools for Microsoft Visual Studio permettant de créer des applications Azure dans Visual Studio 2008 (1).
Ici, après avoir installé les deux modules logiciels en haut à droite, nous demandons la création d'une application Azure de type Web Cloud Service en langage C# baptisée « Bonjour 01NET ».
(1) Les applications Azure peuvent être créées avec Visual Studio 2008 SP1, la version Visual Web Developer 2008 Express Edition SP1 étant gratuite. L'environnement doit être installé sur Vista SP1 ou Windows Server 2008 SP1 avec la version 3.5 SP1 du Framework .Net et SQL Server Express 2005 ou 2008.
Les langages usuels peuvent être utilisés
Pour les développeurs la programmation d’une application Azure est sensiblement identique à la programmation d’une application Windows classique. Ici, la page Default.aspx contient dans le code C# des balises HTML qui vont définir le titre (« La première application de 01NET… ») de la page Web dynamique générée par notre application Azure et afficher le message « Bonjour à tous ! » dans le corps de la page.
Les développeurs peuvent aussi programmer avec le langage Visual Basic. A terme tous les langages opérationnels avec le framework .Net (Python, PHP, Ruby, etc.) pourront être utilisés. Microsoft appelle également de ses vœux le développement d’un plug-in Eclipse permettant de créer une application Azure.
Un « modèle de service » associé à chaque application
Par rapport à la programmation classique, il faut souligner une différence notable : une application Azure est définie par deux projets au lieu d’un seul. L’un contient le code de l’application à proprement parler (Bonjour 01NET_WebRole qui contient la page Default.aspx de la diapo précédente), tandis que l’autre (Bonjour 01NET) décrit la manière dont cette application va s’exécuter et communiquer sur Internet (respectivement par l’intermédiaire des fichiers ServiceConfiguration.cscfg et ServiceDefinition.csdef).
Pour ce second projet, Microsoft parle de « modèle de service ». Ici, dans le fichier ServiceConfiguration.cscfg, nous demandons par exemple à n’exécuter qu’une seule instance (ou copie) de l’application à la fois (Instances count = « 1 ») sur les serveurs virtuels du « nuage » Azure.
Tester les applications en local
Une fois l’application écrite, il suffit d’appuyer sur la touche F5 pour la tester en local sur son PC, avant de la déployer sur les serveurs distants de Microsoft ! Si aucune erreur n’est détectée à la compilation, elle s’exécute automatiquement. Ici, le navigateur Internet Explorer affiche comme prévu le message (« Bonjour à tous ») tandis que le titre de la page est bien celui demandé. A noter, l’URL (http://127.0.01:81/Default.aspx) montre que le navigateur charge la page Web générée par notre application sur un serveur Web qui tourne localement sur notre PC de bureau.
Deux machines virtuelles simulent le « nuage » informatique sur votre PC
L’application Azure s’exécute localement sur un PC grâce à la présence de deux machines virtuelles, baptisées Development Fabric et Development Storage, qui s’installent avec le SDK et fonctionnent en arrière-plan (elles sont respectivement représentées par un rouage et un serveur dans la barre système). La machine virtuelle Development Fabric simule la façon dont le contrôleur central Windows Azure déploie les applications sur les serveurs des datacenters en grandeur réelle dans le « nuage Internet », tandis que la machine virtuelle Development Storage simule les services de stockage (Table, Queue et Blob) fournis par Windows Azure sur le « nuage Internet ». Cette seconde machine virtuelle s'appuie sur SQL Server qui doit être installé sur la machine de test.
Un portail pour publier ses applications
Une fois l’application déboguée en local sur un PC, on peut « l’installer » sur la plate-forme de Microsoft grâce au menu Publier de la fenêtre projet de Visual Studio. Le développeur est automatiquement aiguillé vers le site Azure Services Developer Portal où il doit avoir créé un compte (associé à un identifiant Windows Live). Ce portail est l’interface qui permet de déployer et de maintenir les applications Azure. On y télécharge le programme (fichiers .cspkg) et le modèle de service associé (fichier .cscfg) qui sont ensuite envoyés au contrôleur central Windows Azure lorsqu’on demande l’exécution (en mode test ou en mode production). A noter, il faut préciser au passage l’URL qui donnera accès à l’application via Internet sous la forme http://MonAppli.cloudapp.net.
Une fois en ligne, l'application peut être optimisée
Dès qu'elle est publiée sur la plate-forme Azure, l’application est accessible par un navigateur Internet (Internet Explorer, Firefox ou Safari). On peut décider à tout moment d’augmenter sa réactivité en augmentant le nombre d’instances (de copies tournant sur les serveurs de Microsoft) à lancer simultanément. L’opération peut se faire en téléchargeant un nouveau fichier de configuration des services créé avec Visual Studio ou en éditant ce fichier directement sur le portail Azure.
Un modèle tarifaire encore inconnu
Windows Azure est la brique fondamentale de la plate-forme d’hébergement que Microsoft compte lancer courant 2009. Pour faire gagner du temps aux développeurs, Microsoft propose également des services clés en main qui leur éviteront de réinventer la roue : base de données décisionnelles (SQL Services), fonctions de programmation (.Net Services), outils de synchronisation (Live Services), etc. Il s’agit en quelque sorte de bibliothèques de services prêts à l’emploi.
Attention l’accès à la plate-forme d’hébergement de Microsoft (Windows Azure et chaque service) sera payant et pour l’instant, les tarifs ne sont pas connus. On sait juste qu’ils seront « compétitifs » et tiendront compte des « ressources consommées et du niveau de service demandé ».
Signalons enfin que Windows Azure servira également de plate-forme pour les nouveaux services bureautiques en ligne, Office Web Applications, que Microsoft vient de présenter.