Débordement Web vers Windows Azure Avertissement Cet article s’inspire d’un article publié en janvier 2010 que l’on propose en annexes. Le scénario est le même, mais la façon d’aborder le sujet diffère. L’article original s’adressait à des architectes et entrait peu dans le détail. On propose ici plutôt de n’aborder qu’une partie des sujets mais de les voir concrètement, ce qui intéressera plus les développeurs. Cet article peut être lu sans lire l’article original. Par exemple, sur le coût de la solution, on indique comment ont évolué les prix et combien la solution pourrait coûter aujourd’hui sans reprendre le détail du calcul original. Egalement, dans le chapitre mise en œuvre, on montre des éléments assez indépendants. La cohérence est apportée par l’article original, mais n’est pas indispensable. Scénario Cet article montre comment on peut utiliser l’élasticité du cloud pour permettre à l’informatique interne d’une entreprise de déborder sur le nuage pendant les périodes de plus forte charge. Pour illustrer cela, on s’appuie sur l’exemple de la saisie des feuilles de temps dans laquelle les employés de l’entreprise affectent leur temps à des projets, pour le suivi budgétaire de ces derniers. Contoso demande aux employés européens qui travaillent sur ses projets de saisir de façon hebdomadaire le temps qu’ils ont passé sur chaque projet, de façon à pouvoir suivre budgétairement ces projets. Les saisies peuvent avoir lieu par anticipation, mais la plupart de ces saisies ont lieu le vendredi après- midi (plus de 80% de la population concernée). Il y a à peu près 20 000 personnes concernées par cette saisie dans l’entreprise. Cela donne donc une population de 16 000 personnes pour la saisie le vendredi après-midi. Le vendredi après-midi, l’application de saisie des temps rencontre des dégradations performance aboutissant à des abandons de saisie, et une baisse de productivité des employés. Les prestataires externes peuvent saisir leurs temps directement dans l’application quand ils sont dans les murs de l’entreprise, mais ils ne peuvent pas le faire depuis Internet, l’application de saisie des temps n’étant pas exposée à l’extérieur. L’affectation des temps aux différents projets est gérée au niveau de l’ERP de CONTOSO. Ce dernier expose des services Web SOAP (Il est à noter que l’ERP peut exposer ces services web directement, ou via une couche d’intégration telle que BizTalk) qui permettent de Récupérer pour un utilisateur la liste des codes et libellés de projets sur lesquels il peut saisir pour la période Récupérer la liste des temps déjà saisis sur une période Soumettre une saisie de temps L’application de saisie des temps est une application Web écrite en ASP.NET, qui fait appel à ces Services Web et utilise l’authentification intégrée Windows (les utilisateurs arrivent avec leur compte défini dans un domaine Active Directory de l’entreprise).
75
Embed
[Tuto] Web burst : Débordement Web vers Windows Azure
Vous allez apprendre comment un développeur ou un architecte peut tester assez facilement la mise en place d’un environnement relativement complexe, pour un coût modique. Le tutoriel montre aussi concrètement comment le cloud et un environnement à demeure peuvent fonctionner ensemble (ici au niveau de l’authentification). Il s’agit là encore d’un exemple d’implémentation de ce que peut être le cloud hybride !
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Débordement Web vers Windows Azure
Avertissement Cet article s’inspire d’un article publié en janvier 2010 que l’on propose en annexes. Le scénario est le
même, mais la façon d’aborder le sujet diffère. L’article original s’adressait à des architectes et entrait
peu dans le détail. On propose ici plutôt de n’aborder qu’une partie des sujets mais de les voir
concrètement, ce qui intéressera plus les développeurs. Cet article peut être lu sans lire l’article
original. Par exemple, sur le coût de la solution, on indique comment ont évolué les prix et combien la
solution pourrait coûter aujourd’hui sans reprendre le détail du calcul original. Egalement, dans le
chapitre mise en œuvre, on montre des éléments assez indépendants. La cohérence est apportée par
l’article original, mais n’est pas indispensable.
Scénario Cet article montre comment on peut utiliser l’élasticité du cloud pour permettre à l’informatique interne
d’une entreprise de déborder sur le nuage pendant les périodes de plus forte charge. Pour illustrer cela,
on s’appuie sur l’exemple de la saisie des feuilles de temps dans laquelle les employés de l’entreprise
affectent leur temps à des projets, pour le suivi budgétaire de ces derniers. Contoso demande aux
employés européens qui travaillent sur ses projets de saisir de façon hebdomadaire le temps qu’ils ont
passé sur chaque projet, de façon à pouvoir suivre budgétairement ces projets.
Les saisies peuvent avoir lieu par anticipation, mais la plupart de ces saisies ont lieu le vendredi après-
midi (plus de 80% de la population concernée). Il y a à peu près 20 000 personnes concernées par cette
saisie dans l’entreprise. Cela donne donc une population de 16 000 personnes pour la saisie le vendredi
après-midi.
Le vendredi après-midi, l’application de saisie des temps rencontre des dégradations performance
aboutissant à des abandons de saisie, et une baisse de productivité des employés. Les prestataires
externes peuvent saisir leurs temps directement dans l’application quand ils sont dans les murs de
l’entreprise, mais ils ne peuvent pas le faire depuis Internet, l’application de saisie des temps n’étant pas
exposée à l’extérieur.
L’affectation des temps aux différents projets est gérée au niveau de l’ERP de CONTOSO. Ce dernier
expose des services Web SOAP (Il est à noter que l’ERP peut exposer ces services web directement, ou
via une couche d’intégration telle que BizTalk) qui permettent de
Récupérer pour un utilisateur la liste des codes et libellés de projets sur lesquels il peut saisir
pour la période
Récupérer la liste des temps déjà saisis sur une période
Soumettre une saisie de temps
L’application de saisie des temps est une application Web écrite en ASP.NET, qui fait appel à ces Services
Web et utilise l’authentification intégrée Windows (les utilisateurs arrivent avec leur compte défini dans
Pour la liaison entre le site web de saisie dans le nuage et l’ERP, c’est-à-dire l’envoi depuis Windows
Azure des feuilles de temps saisies au système d’information interne de l’entreprise, on s’était appuyé
sur Windows Azure Service Bus. Windows Azure Service Bus existe en version synchrone (« relay ») et
asynchrone (« Queues », « Topics »). La version asynchrone est apparue après et présente ici deux
avantages par rapport à la version synchrone :
- Elle peut absorber les pics de charge en stockant les messages non encore consommés
- Elle est plus simple à mettre en œuvre
On choisit donc de remplacer Windows Azure Service Bus Relay par Windows Azure Service Bus Queues.
Les topics sont des queues avec plusieurs abonnés qui peuvent suivre des messages différents. Ici on n’a
qu’une destination, à savoir l’ERP dans un sens, ou la ferme Web dans l’autre donc les queues sont plus
adaptées. On adapte donc le schéma de la façon suivante :
Le schéma reste le même, mais le « service de lien Azure » est développé différemment.
Environnement de simulation et de test de la solution On montre dans cet article seulement certains aspects de la solution, mais dans le détail. De façon à
disposer d’un environnement de simulation de ce qui se passe à demeure on créera une machine
virtuelle dans le datacenter d’Europe de l’Ouest de Windows Azure, que l’on n’exposera sur Internet que
pour y avoir accès via le bureau à distance, et l’on fera tourner ce qui est effectivement dans Windows
Azure dans le datacenter d’Europe du Nord. La création de l’environnement de simulation en Europe de
l’Ouest se fera essentiellement par un script PowerShell.
De façon à ce que chacun puisse reproduire l’exercice dans son propre environnement, on met ici la
chaîne de caractères 131103a dans les noms qu’il vous suffira de changer dans les différents scripts en
choisissant la vôtre. Par exemple, il existe un seul chezwam131103a.cloudapp.net, mais quelqu’un
d’autre peut créer son chezwam1337.cloudapp.net, un autre son chezwam42qr.cloudapp.net.
Ce que nous allons tester Nous allons donc voir plus dans le détail ici comment :
Déployer une application ASP.NET sur Web Sites
Gérer l’authentification avec ADFS
Faire monter en charge automatiquement (Autoscaling) un Web Site
En revanche, ce dernier point fera peut-être l’objet d’un autre article :
Utiliser les queues de Service Bus pour interagir avec le Web Service SOAP à demeure (via un
composant à demeure)
Mise en œuvre
Environnement de simulation L’environnement de simulation est initié par un script PowerShell.
Vous trouverez en annexes la façon d’initialiser votre environnement pour exécuter ce script. Il est à
noter que ce script doit être lancé en tant qu’administrateur. Le démarrage de PowerShell ISE doit donc
Après avoir enregistré les modifications, on voit que le site reste à 1 instance puisque la charge CPU est
faible :
NB : on peut avoir une seule VM pour le site Web puisque le SLA de Web Site s’applique pour des VM
seules. Cela vient de ce que les VM de Web Sites sont standard et un pool déjà démarré est disponible
de sorte que le site Web peut être déployé sur la nouvelle VM dans le temps d’une requête HTTP.
Combien ça coûte ? Parlons prix, maintenant !
Evolution des tarifs depuis janvier 2010, pour la solution originale On pourra comparer les tarifs de l’article original avec les tarifs actuels qui sont disponibles à
http://www.windowsazure.com/pricing. L’article original les exprime en $, au lieu d’€. Il suffit de
changer en bas de la page pour avoir les tarifs en $.
Voici quelques comparaisons :
Juil. 2010 Nov. 2013
Heure VM Small en Cloud Service
Tarification à l’heure 0,12 $ / heure
Tarification à la minute 0,08 $ / heure
Transferts de données (Europe, USA)
0,15 $ / Go sortant 0,10$ / Go entrant
0,12 $ / Go sortant, 5 1ers Go gratuits, tarifs dégressifs 0,00 $ / Go entrant
…
On voit donc que les tarifs ont diminué, et ont gagné en souplesse.
Coûts de ce qui est présenté dans cet article Combien coûte ce qui a été présenté dans cet article ?
On utilise deux machines virtuelles de taille S pour simuler le contrôleur de domaine et une machine
membre du domaine. Avec leur stockage cela coûte à peu près (extraits de
Téléchargement et installation du module PowerShell pour gérer Windows Azure Pour manipuler l’environnement Windows Azure depuis du code et depuis une machine Windows,
PowerShell est un excellent environnement. PowerShell lui-même fait partie de Windows depuis déjà un
certain nombre d’années. En revanche, le module de gestion de Windows Azure doit être téléchargé.
Depuis la machine « dans-mes-murs », on se rend donc à l’adresse suivante :
Une façon de vérifier que tout est correct est de taper :
Get-AzureSubscription
Cela doit vous donner la liste des abonnements auxquels votre compte entré ci-dessus a droit.
La suite des opération dans PowerShell se fera dans l’IDE de PowerShell appelé ISE. On le démarre de la
façon suivante :
Le bouton (ou F5) permet d’exécuter tout le script saisi
Le bouton (ou F8) permet d’exécuter uniquement le code sélectionné
Si on dispose de plusieurs abonnements Azure, comme c’est mon cas, on peut choisir l’abonnement par
défaut de la façon suivante :
Select-AzureSubscription -Default "Azure bengui"
Dans votre cas, remplacez « Azure bengui » par le nom de votre propre abonnement.
Comment joindre manuellement le serveur membre au domaine Au moment de l’écriture de cet article (avant le 6 novembre 2013), il y a un bug dans le module
PowerShell azure et on doit donc joindre manuellement le serveur membre au domaine. Voici comment
on fait.
NB : Plus d’informations sur le bug à http://social.msdn.microsoft.com/Forums/windowsazure/en-