112 votes

Dans Windows Azure : Qu'est-ce qu'un rôle web, un rôle de travailleur et un rôle VM ?

L'application sur laquelle je travaille contient un rôle web : c'est une simple application web. J'avais besoin d'héberger l'application dans Windows Azure, j'ai donc créé un rôle web. En fait, je voudrais savoir à quoi servent ces rôles. Quelle est leur importance en termes de codage ou de stockage ?

99voto

David Makogon Points 28933

EDIT 3/3/2013 - mise à jour pour faire référence aux points de terminaison UDP, aux machines virtuelles et à d'autres langues.

EDIT 6/6/2013 - mise à jour pour refléter l'abandon du rôle VM et la mise à jour des images OS de référence du rôle web/worker vers Windows Server 2012.

Bon lien de @Vladimir. Un peu plus de clarté : Tous les rôles (web, worker) sont essentiellement des Windows Server. Les rôles Web et Worker sont presque identiques :

  • Les rôles Web sont des VM Windows Server avec IIS activé
  • Les rôles de travailleur sont des VM Windows Server avec IIS désactivé (et vous pouvez l'activer manuellement).
  • Les rôles de VM sont des images de Windows Server 2008 que vous construisez localement via Hyper-V et que vous téléchargez vers Azure. (et ne sont plus disponibles depuis le 31 mai 2013).
  • Les machines virtuelles sont des images Windows ou Linux créées dans Azure, stockées sous forme de vhd dans votre propre espace de stockage, et présentent plusieurs améliorations par rapport au rôle des VM. Par exemple : puisque le vhd se trouve dans votre propre compte de stockage, vous pouvez facilement créer un modèle d'image à partir de votre vhd, le copier dans un nouveau vhd, ou même le télécharger sur VM Depot (Linux uniquement).

Pour répondre à votre question sur l'utilisation de ces rôles : Le kit de formation de la plate-forme (mentionné ci-dessous) vous donnera beaucoup de bonnes idées et d'exemples, mais voici quelques cas d'utilisation simples :

  • Vous pouvez exécuter n'importe quel code qui expose un point de terminaison tcp, http, https ou udp (applications web, services SOAP/REST, etc.). Vous devez tenir compte de l'aspect apatride Si vous avez plus d'une instance de VM en cours d'exécution, le trafic des utilisateurs est réparti entre ces instances. Le kit de formation à la plate-forme vous montrera comment utiliser le stockage ou le cache pour résoudre ce problème.
  • Vous pouvez exécuter du code qui dépend d'une file d'attente ou d'un minuteur. Vous avez peut-être des tâches à la demande, comme la génération de vignettes de photos, ou des calculs basés sur les données de l'utilisateur. Ces tâches n'ont pas besoin de points d'extrémité disponibles en externe. Vous pouvez envoyer vos requêtes dans une file d'attente, puis exécuter une tâche qui se nourrit simplement de cette file d'attente (et vous pouvez étendre ce processus à plusieurs instances, les messages de la file d'attente étant consommés par toutes les instances).
  • Vous pouvez exécuter .NET, Java, php, python, node, ruby, etc. Il vous suffit de distribuer le code d'exécution approprié avec le code de votre projet. Tous les langages peuvent effectuer des appels REST à l'API Azure, et plusieurs langages (y compris ceux mentionnés ci-dessus) ont des SDK qui s'en chargent pour vous. Tous les SDK des langages sont aquí avec le code source sur github, aquí .
  • Avec un rôle VM, vous pouvez installer et exécuter des logiciels dont l'installation est très complexe ou prend beaucoup de temps, qui nécessitent une intervention manuelle ou qui ne peuvent pas être automatisés de manière fiable. Dans ce cas, vous devez vous occuper de la maintenance du système d'exploitation. Au-delà du rôle de la VM, il existe maintenant des machines virtuelles, qui permettent de construire des VM dans le nuage et qui prennent en charge Windows et Linux. Je préférerais les machines virtuelles au rôle de VM.

Avec les rôles Web et Worker, le système d'exploitation et les correctifs associés sont pris en charge pour vous ; vous construisez les composants de votre application sans avoir à gérer une VM.

Avec les rôles de VM, vous créez une image complète de Windows Server, vous y ajoutez les crochets Azure et vous transférez l'ensemble de la VM dans le nuage (puis vous maintenez l'image de la VM au fil du temps).

Avec les machines virtuelles, vous choisissez simplement une image de système d'exploitation dans une galerie, qui est créée pour vous et stockée sous la forme d'un vhd dans un espace de stockage blob. Vous pouvez ensuite utiliser RDP/ssh et la configurer comme vous le souhaitez.

En tant qu'architecte, c'est ici que les choses deviennent amusantes et intéressantes. Vous pouvez exécuter des services web dans un rôle Web ou dans un rôle de travailleur (et être en mesure d'ouvrir des ports dans l'un ou l'autre) ; vous pouvez héberger Tomcat ou d'autres serveurs web dans un rôle de travailleur. Vous pouvez choisir de combiner un site web et des services dans un seul rôle, ou de les répartir dans plusieurs rôles pour répondre à des besoins d'évolutivité différents.

Pour commencer, jetez un coup d'œil sur le site de l'Agence européenne pour la sécurité et la santé au travail. Kit de formation à la plate-forme et commencez à faire les exercices.

30voto

Dennis Traub Points 24186
  • Les rôles Web sont des applications Web hébergées dans IIS.
  • Les rôles de travailleur sont des processus qui peuvent effectuer un certain travail (par exemple, compresser automatiquement les images téléchargées, faire des choses lorsque quelque chose change dans votre base de données, recevoir de nouveaux messages de la file d'attente et les traiter, etc.)
  • Les rôles de VM hébergent des VM

21voto

BrianLegg Points 178

Je suis tombé sur cette question/réponse SO il y a plusieurs jours et j'ai trouvé les réponses fournies un peu au-dessus de ma tête (je suis nouveau dans Azure et Web). J'ai trouvé ce résumé dans les principes fondamentaux d'Azure ce soir qui m'a semblé être une bonne vue d'ensemble des différences fondamentales entre les rôles worker et web :

La principale différence entre les deux réside dans le fait qu'une inst exécute IIS, alors qu'une instance d'un rôle worker ne le fait pas. Les deux sont gérés de la même manière, et il est courant qu'une application utilise les deux. utilise les deux. Par exemple, une instance de rôle web peut accepter des requêtes des utilisateurs, puis les transmettre à une instance de rôle worker pour traitement. Pour faire évoluer votre application à la hausse ou à la baisse, vous pouvez demander à Windows Azure de créer plus d'instances de l'un ou l'autre rôle ou d'arrêter les instances existantes. existantes. Et comme pour les machines virtuelles Windows Azure, vous êtes vous n'êtes facturé que pour la durée d'exécution de chaque instance de rôle fonctionne.

Si vous êtes novice en matière de développement Azure, je vous recommande vivement de lire l'article complet ici : Introduction à Windows Azure

J'espère que cela aidera quelqu'un autant que cela m'a permis d'allumer l'ampoule.

3voto

Sufy Khan Points 9

Les rôles Web dans Windows Azure sont à usage spécial et fournissent un serveur web dédié IIS (Internet Information Services) utilisé pour héberger des applications web frontales. Vous pouvez rapidement et facilement déployer des applications web sur des rôles web, puis augmenter ou réduire vos capacités de calcul pour répondre à la demande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X