18
TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZURE Table des matières TP3-2 Construisez votre premier service Azure ............................................................................................................. 1 Construisez votre premier service Azure........................................................................................................................ 2 Mise en place des outils de développement .............................................................................................................. 2 Créez votre première solution Azure ......................................................................................................................... 2 Vous êtes plutôt Web Role, WCF Service Role, Worker Role ou CGI Web Role ? ...................................................... 3 Découvrez le contenu d’une solution Cloud Service .................................................................................................. 4 Exercice 1 : Développez votre premier WebRole ....................................................................................................... 6 Exercice 2 : La « Development Fabric » ou tester et débuguer ses applications Azure en local................................ 7 Exercice 3 : Déployer votre solution sur le Cloud Azure............................................................................................. 9 ....... 12 A la fin du TP tout doit être supprimé. ..................................................................................................................... 12 ....... 12 Exercice 4 : Mise en production d’un service Azure ................................................................................................. 12 Exercice 5 : Configurez votre application Windows Azure ....................................................................................... 12 ServiceConfiguration.cscfg ou Web.config ? ........................................................................................................ 13 Exercice 6 : Plus de puissance de calcul = plus de serveur ! ..................................................................................... 17 Conclusions ................................................................................................................................................................... 18

TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE

AZURE

Table des matières TP3-2 Construisez votre premier service Azure ............................................................................................................. 1

Construisez votre premier service Azure........................................................................................................................ 2

Mise en place des outils de développement .............................................................................................................. 2

Créez votre première solution Azure ......................................................................................................................... 2

Vous êtes plutôt Web Role, WCF Service Role, Worker Role ou CGI Web Role ? ...................................................... 3

Découvrez le contenu d’une solution Cloud Service .................................................................................................. 4

Exercice 1 : Développez votre premier WebRole ....................................................................................................... 6

Exercice 2 : La « Development Fabric » ou tester et débuguer ses applications Azure en local ................................ 7

Exercice 3 : Déployer votre solution sur le Cloud Azure............................................................................................. 9

....... 12

A la fin du TP tout doit être supprimé. ..................................................................................................................... 12

....... 12

Exercice 4 : Mise en production d’un service Azure ................................................................................................. 12

Exercice 5 : Configurez votre application Windows Azure ....................................................................................... 12

ServiceConfiguration.cscfg ou Web.config ? ........................................................................................................ 13

Exercice 6 : Plus de puissance de calcul = plus de serveur ! ..................................................................................... 17

Conclusions ................................................................................................................................................................... 18

Page 2: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 2/18

Construisez votre premier service Azure

Mise en place des outils de développement A partir de l’hyperviseur, lancer Windows 7:

1. installer Visual Studio 2010, et le service pack 1. 2. Installer la fonctionnalité Services World Wide Web 3. Lancer Visual Studio 2010. Nouveau Projet/Cloud. 4. Le SDK Windows Azure n’étant pas Installé, cliquer

sur Activer Windows Azure Tools. Visual Studio présente ensuite une page de téléchargement : Télécharger Windows Azure Tools. Cliquer sur ce bouton, puis installer le SDK et quitter Visual Studio.

5. Exécuter le correctif permettant d’améliorer l’IntelliSense pour les applications Cloud à l’adresse suivante (utiliser Internet Explorer): http://code.msdn.microsoft.com/KB983301/Release/ProjectReleases.aspx?ReleaseId=4351, puis installer le et redémarrer Visual Studio.

Créez votre première solution Azure Dès lors que le SDK de

Windows Azure sera

installé sur votre

machine, vous

retrouverez au sein de

Visual Studio 2010 un

nouvel ensemble de

modèles (templates) de

création de projets,

ceux-ci se trouvent sous

la catégorie dite « Cloud

Service » que vous

retrouverez aussi bien

en Visual Basic qu’en Visual C#. Cette nouvelle catégorie vous permettra de créer des projets basés sur le Template

Cloud Service. Observez la capture ci-dessous, vous

devriez avoir le même rendu à votre écran.

Acceptez les noms par défaut pour le nom du projet et le nom de la solution, à savoir :

- Nom de votre projet : « CouldService1 » - Nom de votre solution : « CouldService1 »

Cliquez maintenant sur le bouton « OK », cette étape

effectuée, un assistant vous proposera de sélectionner

les rôles de votre service Azure au travers de l’écran ci-

contre :

Vous devez sûrement vous poser la question : « mais

Page 3: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 3/18

qu’est-ce qu’un « Rôle » ? » et vous avez raison. Abordons rapidement cette notion avant de poursuivre la création de notre premier projet.

Vous êtes plutôt Web Role, WCF Service Role, Worker Role ou CGI Web Role ? Effectivement, le développement d'applications Windows Azure engendre une notion dite de "Rôles" qui se distingue en quatre parties que sont les ASP.NET Web Role, les Worker Role, les WCF Service Role et les CGI Web Role. L’architecture des services hébergés au sein de la plateforme Windows Azure est construite sur base de composants modulables développés en code managé. Ces composants sont appelés des « Rôles », ainsi la création d’un service au sein de Windows Azure ne sera ni plus ni moins qu’une implémentation d’un ou plusieurs rôles. Un Service sera également capable d’exécuter plusieurs instances de rôles différents. Dans Windows Azure, exécuter une ou plusieurs instances d’un rôle consiste en une exécution répliquée sur plusieurs serveurs en vue d’exécuter tout ou partie des fonctionnalités de ce ou ces services. A ce stade de la version du SDK de Windows Azure, vous retrouverez donc quatre rôles, libre à vous de choisir les rôles nécessaires au sein de votre solution ! Voyons un peu plus en détails à quoi correspondent l’ensemble de ces rôles :

- Les ASP.NET Web Rôles : Ce rôle vous permettra de créer des applications Web de type ASP.NET qui seront exposées sur le protocole HTTP et/ou HTTPS. Vous pourrez alors héberger des applications de type ASP.NET.

- Les WCF Service Web Role : Ce rôle est très similaire au précédent et permet d’héberger des Web services basés sur la brique WCF du .NET Framework.

- Les Worker Roles : Ce troisième rôle consiste en une application de type processus s’exécutant comme une tâche de fond sans nécessité d’être exposée sur un quelconque protocole. Il peut s’agir d’une application de génération de miniature qui s’exécuterait indépendamment du site web. On pourra alors utiliser les services d’Azure Storage comme la Queue pour faire communiquer notre Web rôle avec le Worker Role.

Source : http://msdn.microsoft.com/en-us/library/dd179341.aspx

- Les CGI Web Roles

Cette dernière catégorie de rôles vous permettra de créer des applications web s’exécutant via FastCGI. Au travers de ce type de rôle, vous pourrez par exemple héberger sur Windows Azure des applications de type PHP.

Ainsi un Service Azure que vous développerez pourra être un simple Web role (ASP.NET ou CGI par exemple), un simple Worker Role ou une combinaison des deux voire plus encore en termes de combinaisons. Vous avez également la possibilité d’héberger plusieurs rôles du même type dans un service Azure – Solution Visual Studio Azure - et ainsi vous retrouvez avec une solution Azure pouvant contenir X Web Role(s) et X Worker Role(s).

Page 4: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 4/18

Dans le cadre de ce TP de découverte, nous ajouterons un seul ASP.NET Web Role en sélectionnant simplement dans la catégorie « Visual C# » le « ASP.NET Web Role » et en cliquant ensuite sur la flèche vers la droite :

Après avoir cliqué sur le bouton « OK », vous obtiendrez ainsi le résultat suivant (après avoir sélectionné menu Affichage / Explorateur de solutions) : Examinons maintenant plus en détails le contenu de ce que Visual Studio 2010 nous a créés !

Découvrez le contenu d’une solution Cloud Service Analysons le contenu de la solution crée par Visual Studio 2010 : Comme vous pouvez le constater dans la capture ci-avant, nous retrouvons les deux projets suivants :

CloudService1 : « Projet Azure »

WebRole1 : « Votre premier Web rôle » Le premier projet « CloudService1 » est un projet de type Azure, celui-ci contient différents éléments indispensables au paramétrage de la plateforme Azure, à savoir :

Le fichier de définition du service contenant par exemple la configuration HTTP ou HTTPS

Le fichier de configuration du service permettant l’édition des paramètres de configuration depuis l’interface d’administration, vous y retrouvez également le nombre d’instances pour chaque rôle.

Ce premier projet est indispensable car il nous permet de tester une solution tant en local au travers des outils que nous découvrirons un peu plus loin. Ces éléments sont également présents dans la plateforme Windows Azure au travers de l’interface de gestion des paramètres qui n’est qu’une réédition online de cette interface. Le second projet « WebRole1» est votre web rôle : un projet de type ASP.NET. Afin de mieux comprendre le mode de fonctionnement de ce type de solution et certainement le pourquoi de cette architecture de projet, effectuez maintenant une publication (Publier) de votre solution et observez le résultat ! Pour ce faire, rien de plus simple, cliquez droit sur votre projet Azure « CloudService1 » et sélectionnez l’action Package... Cette action aura pour résultat la génération de votre solution ainsi que la création des packages qui devront être à terme uploadés sur la plateforme Azure au travers de son interface d’administration. Nous y reviendrons ultérieurement.

Page 5: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 5/18

Observez les fichiers générés :

Un fichier CSPKG : fichier compressé contenant notre application ASP.NET

Un fichier CSCFG : fichier de configuration de notre solution Azure. Celui-ci, après déploiement sur Azure, reste éditable au travers le site d’administration.

Par curiosité vous pouvez renommer le fichier CSPKG en .ZIP (ajouter l’extension .zip) afin d’analyser son contenu :

Le fichier .CSSX est lui-même un fichier ZIP qui contient le contenu de l’application ASP.NET de notre WebRole. Si vous souhaitez obtenir de plus amples informations relatives à la structure interne des packages Azure, vous pouvez consulter l’adresse ci-dessous : http://blogs.msdn.com/jnak/archive/2009/04/16/digging-in-to-the-windows-azure-service-package.aspx Pour la suite nous utiliserons un autre projet fourni dans une archive sur le site web de cours. Décompacter l’archive dans le dossier C:\Users\user\Documents\Visual Studio 2010\Projects\MyFirstWebRoleprojet\MyFirstWebRole et ouvrir le projet (raccourcis MyFirstWebRole.sln).

Page 6: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 6/18

Exercice 1 : Développez votre premier WebRole Maintenant que vous avez compris les fondements relatifs à la création d’une solution de type Azure, poursuivons la création de notre premier Web Role ASP.NET en ajoutant au sein de la Page ASPX un label qui a pour objectif d’afficher le nom du serveur sur lequel l’application est exécutée. Pour ce faire on réalise une page web simple comportant un simple control de type « Label » au sein de la page ASPX du projet WebRole de votre solution. Modifiez la page default.aspx pour qu’elle présente le code suivant : Code HTML :

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"

Inherits="MyWebRole1._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Demo Azure</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<h1><asp:Label ID="lblHelloWorld" runat="server"></asp:Label></h1>

</div>

</form>

</body>

</html>

Commençons la partie code en étudiant le chargement de la page où nous allons remplir un label lblHelloWorld (voir le code de Default.aspx) avec le nom du serveur sur lequel la page est exécutée. Saisissez ainsi le code suivant au sein de votre méthode de chargement de page (Default.aspx.cs) : Code C# :

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace WebRole1

{

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

this.lblHelloWorld.Text = "Hello World from " + Page.Server.MachineName;

}

}

}

Le premier développement de WebRole étant terminé, il vous faudra maintenant découvrir le mode de compilation et de test en local ainsi que sa « mise en production » sur la plateforme Azure. Passons pour ce faire à l’étape : le test et debugging local !

Page 7: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 7/18

Exercice 2 : La « Development Fabric » ou tester et débuguer ses applications Azure en local

Afin de vous faciliter le développement de vos applications Azure, vous avez la possibilité d’exécuter l’ensemble de vos rôles en local tout comme si vous étiez en production sur la plateforme de déploiement Windows Azure. Cette fonctionnalité, mise à disposition au travers de certains outils que nous allons découvrir vous permettra de tester et débuguer vos applications en local avant de les télécharger sur la plateforme Azure. Cette fonctionnalité de test local mise à disposition au travers de Visual Studio 2010 vous permettra de profiter du mode débugge disponible comme pour toute application de type ASP.NET.

Indispensable ! : démarrez votre Visual Studio 2010 en mode Administrateur afin de vous permettre d’utiliser le test et débugue local.

Comment tester votre application ? Et bien rien de plus simple : appuyez sur la touche F5 et vous devriez obtenir un résultat similaire à celui-ci :

Vous le constatez, votre navigateur démarre votre page Web sur une adresse locale hébergeant votre WebRole.

Il ne vous reste plus qu’à tester la gestion de vos points d’arrêt dans votre Visual Studio pour le debugging vous

permettant d’exécuter au pas à pas votre application, analyser les variables locales et accéder à la pile.

Cliquer sur la marge de gauche de la fenêtre Visual Studio pour poser un point d’arrêt, puis appuyer de nouveau sur F5. Le programme s’arrête au point d’arrêt. A partir de là on peut inspecter l’ensemble des variables du programme.

Page 8: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 8/18

Comme vous le voyez, développer un WebRole Azure ne change pas les habitudes d’un développeur ASP.NET.

Une question reste d’actualité : qu’en est-il de l’hébergement local de nos applications Azure ?

L’hébergement local est fourni par la « Development Fabric » qui simule

l’environnement Azure sur votre poste local, celui-ci est accessible au travers des

icônes disponibles au sein de votre barre des tâches (clic droit) voir ci-contre:

L’interface graphique de la « Development Fabric » vous permettra de suivre les rôles créés pour votre service

Azure.

Remarque : Cette « Development Fabric » se comporte comme la plateforme Azure. A ce titre, il est possible de

créer plusieurs instances d’un rôle (en changeant le paramétrage fichier de configuration CSCFG), de les héberger

dans cette Fabric et de les superviser depuis la console affichée ci-dessus.

Page 9: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 9/18

Exercice 3 : Déployer votre solution sur le Cloud Azure

Pour la suite nous utiliserons le projet

« MyFirstWebRole » à télécharger depuis

le site de cours. Décompresser l’archive

dans le répertoire des projets. Notre

WebRole étant créé et testé, il nous reste

plus qu’à le déployer sur les serveurs de

Windows Azure. Pour cela nous allons

utiliser la fonction de publication sur le

projet Azure « MyFirstWebRole » :

Créer le package :

Suite à cela Visual Studio ouvrira une fenêtre :

L’explorateur Windows dans le dossier de publication de votre projet où vous retrouverez les deux fichiers de votre service Azure à savoir : le package CSPKG et le fichier de configuration CSCFG

Lancer Internet Explorer avec l’URL : http://windows.azure.com, identifier vous avec votre compte Windows

Live utilisé pour vous abonner aux services Windows Azure, à la suite de quoi IE ouvre la fenêtre suivante :

Ces premières étapes effectuées, vous accéderez maintenant à l’interface de présentation suivante vous permettant de créer et provisionner votre premier projet Azure :

Windows Azure vous proposera d’effectuer le choix de création de service entre plusieurs services par exemple un service de type « Storage Account » (stockage d’informations à ne pas confondre avec SQL Services) ou « Hosted Services » (hébergement de votre solution Azure).

Choisir Nouveau service hébergé. Après quelques secondes, l’abonnement utilisé est affiché.

Page 10: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 10/18

Commencer par créer notre projet sur l’interface d’administration d’Azure en créant un nouveau projet de

type « Hosted Service » (service hébergé) :

Donner le nom et la description de notre service :

La seconde étape consiste à créer le nom de domaine de votre application. Pour l’instant, nous pouvons

seulement réserver un sous domaine de cloudapp.net.

Dans le cadre de notre première application, je vous invite à choisir le sous-domaine qui vous conviendra le

mieux, un sous domaine est unique et dans le cadre de TP choisirons : « tp3-<votre nom de

famille>.cloudapp.net ». Celui-ci deviendra donc indisponible.

Pour finir nous allons définir un groupe d’affinité que nous appellerons « Groupe TP Cloud ». Le groupe

d’affinité a pour but d’héberger vos « Hosted Service » et « Storage Account » dans les mêmes régions

géographique (pour rappel nous nous situons ici à l’échelle mondiale des datacenters !) afin de gagner en

performance.

Notre projet est maintenant créé !

Page 11: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 11/18

Nous allons, dans notre TP, déployer notre projet dans l’environnement de « Staging » (environnement

intermédiaire) pour voir de quoi il en retourne, puis, si notre application est bien fonctionnelle, la basculer en

production.

Dans l’interface nous allons pouvoir sélectionner notre package Azure « .cspkg » et notre fichier de configuration

« .cscfg » dans la fenêtre ouverte par Visual Studio lors du « Publish »

(répertoire C:\Users\user\...\MyFirstWebRole\MyFirstWebRole\bin\Debug\Publish) ou (répertoire C:\Users\user\...\MyFirstWebRole\MyFirstWebRole\bin\Release\Publish)

Puis cliquer sur OK (au bas de la fenêtre).

Il faudra patienter quelques minutes (de 5 à 10 minutes), le temps que Windows Azure nous créé un

serveur virtuel de type Windows Server 2008 SR2, déploie notre service et lance ce dernier.

En sélectionnant que éléments, Azure vous fournit tous les caractéristiques de l’élément sélectionné.

Pour tester notre service, nous pouvons nous connecter en cliquant sur lien de l’adresse

temporaire fournie :

Page 12: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 12/18

Comme vous pouvez le constater, notre service (webrole ASP.NET) fonctionne correctement, indiquant le nom du

serveur sur lequel il s’exécute.

Attention : ne laisser pas s’exécuter votre instance de service après la fin du TP, votre compte serait débité au bout de 25 heures! Suspendre le service, puis détruire machine virtuelle : Sélectionner le service et clic sur les icones Arrêter, puis après l’arrêt choisir Supprimer (tester, puis par la suite ne le faire qu’à la fin du TP).

A la fin du TP tout doit être supprimé.

Exercice 4 : Mise en production d’un service Azure Satisfait de notre service, nous allons le promouvoir pour l’environnement de production :

Après le lancement de l’application on obtient :

Exercice 5 : Configurez votre application Windows Azure

Comme vous avez pu le constater lors du déploiement sur Windows Azure, nous avons envoyé le fichier de

configuration de notre service (ServiceConfiguration.cscfg) indépendamment de notre package.

Ce fichier contiendra les différentes valeurs de configuration de notre service et restera éditable depuis l’interface

d’administration de Windows Azure nous permettant de ne pas devoir refaire la procédure de déploiement.

Pour cela il suffit de cliquer sur le bouton « Configurer » après avoir sélectionné votre service :

Page 13: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 13/18

Vous accèderez sur la page de configuration de votre service à l’interface suivante:

Il vous sera possible de modifier le fichier de configuration de votre service directement en ligne ou d’envoyer une

nouvelle version de votre fichier .cscfg sans pour autant redéployer un nouveau package.

ServiceConfiguration.cscfg ou Web.config ?

Le fichier Web.config créé par défaut pour toute application ASP.NET permet d’externaliser la configuration dans

un fichier XML tout comme le propose le fichier ServiceConfiguration.cscfg sur un service Azure.

Mais alors dans quel fichier mettre mes paramètres de configuration ?

Le problème du fichier Web.config est que celui-ci, dans le cadre dans un service Azure, est encapsulé dans le

package Azure (cspkg) et donc devient non éditable une fois le service Azure déployé.

Il faut donc être vigilent lors du développement de notre application et de savoir quels sont les paramètres que l’on

veut pouvoir modifier une fois notre service déployé.

Le fichier de configuration d’un service Azure met à disposition un modèle type clé/valeur, l’équivalent du

AppSettings du fichier Web.config.

Les clés des paramètres de configuration doivent être d’abord déclarées dans le fichier de définition de votre

service Azure (ServiceDefinition.csdef).

Ensuite dans le fichier ServiceConfiguration.cscfg nous pourrons affecter les valeurs pour les paramètres de

configuration.

Créons un paramètre de configuration dans notre service MyFirstWebRole. Nous nommerons ce paramètre

« Auteur » et nous l’affecterons à la valeur « <mon_nom> ». Ce nom sera affiché la page Web.

Pour cela commençons par déclarer notre paramètre dans le fichier de description

de notre service (ServiceDefinition.csdef). Plutôt que d’effectuer la modification

directement dans le fichier à l’aide d’un éditeur du type notepad, Visual Studio fourni

un éditeur spécialisé vous évitant que commettre des erreurs de syntaxe.

Cliquer sur

Page 14: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 14/18

Dans la partie de droite s’ouvre l’éditeur :

L’onglet Configuration permet de paramétrer le fichier de configuration avec le nombre d’instances de machines virtuelles qui seront déployées par Windows Azure et la taille de la machine virtuelle.

L’onglet Setting permet d’ajouter des paramétrer l’application. C’est cet onglet que nous allons utiliser.

L’onglet Endpoints permet de définir le port http à utiliser.

L’onglet Local Storage permet de configurer l’espace disque à utiliser sur le serveur virtuel (non utilisé ici).

L’onglet Certificates permet d’associer un certificat de sécurité à notre application (non utilisé ici).

Ouvrir l’onglet Setting

1. Ajouter un paramètre (Add Setting) 2. Définir un paramètre de type Auteur 3. Définir le nom de l’auteur ici « myself »

Le fichier ServiceDefinition.csdef modifié est donné ci-dessous <?xml version="1.0"?> <ServiceConfiguration serviceName="MyFirstWebRole" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"> <Role name="MyWebRole"> <Instances count="1" /> <ConfigurationSettings> <Setting name="DiagnosticsConnectionString" value="UseDevelopmentStorage=true" /> <Setting name="Auteur" value="Daniel" /> </ConfigurationSettings> <Certificates> </Certificates> </Role> </ServiceConfiguration>

De cette façon, une fois mon service déployé sur le Cloud Azure, nous aurons toujours la possibilité de modifier la

valeur pour le paramètre « Auteur » sans devoir recompiler non application et redéployer notre service.

Page 15: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 15/18

Avant de récupérer le paramètre « Auteur » dans le code C# associé à la page, nous allons modifier la page web en ajoutant un label lblAuteur. Cette modification est simple pour un développeur connaissant la syntaxe d’ASP.net ce qui n’est pas notre cas. Nous utiliserons donc la boite à outils des contrôles de Visual Studio.

1. Faites apparaitre cette boite à outils (menu Affichage/Boite

à outils) et épingler ce contrôle.

2. Dans l’explorateur de solutions cliquer sur default.aspx pour

ouvrir la page web. Au bas de la fenêtre default.aspx des

onglets permettent de spécifier le mode d’affichage de cette

page. Passer en mode Design. Dans la boite à outil,

sélectionner un contrôle Label et glisser le dans la fenêtre

Design. Ajouter un texte statique Auteur : devant le label.

3. En sélectionnant le label on fait apparaitre une fenêtre de propriétés sur le bord droit de Visual Studio.

4. Effacer la valeur Label attribuée à la propriété Text.

5. Attribuer la valeur lblAuteur à l’ID du contrôle.

6. Passer en mode Source (afficher le balisage) pour voir le résultat de l’ajout du

label sur la page web. Vous devriez obtenir le code ci-dessous.

Page 16: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 16/18

Une fois notre paramètre Auteur déclaré pour notre service, et le label associé défini dans la page Web, il nous faut les récupérer depuis le code de notre WebRole.

1. Ouvrir le fichier Default.aspx.cs

2. Dans la procédure Page_Load à la suite de la ligne affichant le nom du serveur ajouter (observer le travail de l’Intellisence de Visual Studio) : this.lblAuteur.Text = Remarque : L’assembly Microsoft.WindowsAzure.ServiceRuntime (ajouté automatiquement comme référence à notre application ASP.NET) met à disposition la classe statique « RoleEnvironment » Vous retrouverez dans cette classe la méthode « GetConfigurationSettingValue » permettant la récupération de la valeur pour un paramètre donné. Pour affecter la valeur de notre paramètre Auteur dans un label, le code sera le suivant :

Lors de l’exécution de notre application nous retrouverons bien notre valeur pour le paramètre Auteur affectée au

label :

Afin de tester ces modifications, répéter l’exercice 2 pour un déploiement en local et l’exercice 3 pour un

déploiement sur la plateforme Azure.

Après déploiement sur le serveur de production on obtient(ne pas oublier de régénérer le package de

déploiement) :

Page 17: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 17/18

Exercice 6 : Plus de puissance de calcul = plus de serveur !

Un des grands avantages du Cloud est la puissance de calcul dû aux nombres de serveurs dans les DataCenter de

Windows Azure qui nous permet une haute disponibilité et montée en charge.

Imaginez que votre service connaisse une forte montée en charge saturant le serveur sur lequel il s’exécute. Avec

une infrastructure On-Premise, il est à votre charge l’achat de nouveaux serveurs, leur installation et la mise en

place du load-balancing ne sachant pas si cet investissement sera rentable dans le cas où il ne s’agit que de pics de

montée en charge éphémère (exemple : un site de commerce pendant les fêtes de fin d’année).

Grace à Windows Azure pas besoin de se soucier de ces problèmes. Nous allons simplement incrémenter le nombre

de serveurs sur lequel notre service doit tourner et laisser la plateforme Windows Azure déployer le nombre de

serveurs nécessaires et assurer le load-balancing entre ces serveurs.

Pour cela nous allons éditer le fichier de configuration de notre service depuis l’interface d’administration de

Windows Azure pour incrémenter le paramètre « Instances Count ». Dans notre cas nous allons demander deux

serveurs (limite pour les comptes gratuits de développeur).

Modifier le nombre d’instances :

Après enregistrement du fichier, nous pouvons constater qu’un deuxième serveur est déployé :

Page 18: TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZUREdaniel.tschirhart.free.fr/cloud/TP/TP3P2.pdf · Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier

Architectures réparties et Cloud Computing

Daniel Tschirhart - Architectures réparties et Cloud Computing - Construisez votre premier service Azure 18/18

On constate en navigant sur notre service, que ce n’est pas toujours le même serveur qui répond. Tantôt le serveur

…1C9 nous répond, tantôt c’est le …776 qui nous répond. Le load-balancing est complément transparent pour le

développeur comme pour l’utilisateur. Ainsi mon service peut monter en charge, de notre côté nous n’aurons qu’à

ajuster le nombre de serveurs nécessaires à la charge actuelle en éditant un simple fichier XML dans l’interface

d’administration de Windows Azure.

(Note : le préfixe « RD » du nom du serveur indique la localisation géographique du serveur. RD pour Redmond.

Nos deux serveurs se situent donc dans le Datacenter de Redmond à Seattle.

Conclusions Nous touchons à la fin de ce TP et nous avons donc construit notre premier service « in the cloud » hébergé sur

l’Azure Service Platform. Ce premier exemple est simple mais nous a permis de comprendre toute la mécanique de

développement et de déploiement autour de la plateforme Azure.

Références : Ce document est une version adaptée du didacticiel : Coach Windows Azure.