web-dev-qa-db-fra.com

Dans Windows Azure: Que sont le rôle Web, le rôle de travail et le rôle VM?

L'application sur laquelle je travaille contient un rôle Web: il s'agit d'une application Web simple. J'avais besoin d'héberger l'application dans Windows Azure. J'ai donc créé un rôle Web. Je veux en fait savoir à quoi servent ces rôles. Quelle est leur signification en termes de codage ou de stockage?

111
Kuntady Nithesh

EDIT 3/3/2013 - mis à jour pour référencer les points de terminaison UDP, les machines virtuelles et plusieurs langues

EDIT 06/06/2013 - mis à jour pour refléter l'abandon du rôle VM) et la mise à jour des images de système d'exploitation de base de rôles Web/travailleur vers Windows Server 2012

Bon lien par Vladimir. Un peu plus de précision: tous les rôles (Web, travailleur) sont essentiellement Windows Server. Les rôles Web et de travail sont presque identiques:

  • Les rôles Web sont des ordinateurs virtuels Windows Server avec IIS activé
  • Les rôles de travail sont des machines virtuelles Windows Server avec IIS désactivé (et vous pouvez l'activer manuellement)
  • Les rôles de machine virtuelle sont des images Windows Server 2008 construites localement via Hyper-V et téléchargées vers Azure (elles ne sont plus disponibles et ne sont plus disponibles à compter du 31 mai 2013
  • Les machines virtuelles sont des images Windows ou Linux créées dans Azure, stockées en tant que vhd dans votre propre stockage. Plusieurs améliorations ont été apportées au rôle VM. Par exemple: étant donné que le vhd est dans votre propre compte de stockage, vous pouvez facilement créer un modèle d'image à partir de votre vhd, le copier sur un nouveau vhd ou même le télécharger sur VM Depot (Linux uniquement).

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

  • Vous pouvez exécuter n’importe quel code exposant un point de terminaison TCP, HTTP, https ou UDP (applications Web, services SOAP/REST, etc.). Vous devez cependant penser à la manière stateless de faire les choses - si vous avez plusieurs instances VM en cours d'exécution, le trafic utilisateur est réparti entre ces instances. Le kit de formation à la plate-forme vous montrera comment utiliser le stockage ou le cache pour y faire face.
  • Vous pouvez exécuter du code qui vit d'une file d'attente ou d'un minuteur. Vous avez peut-être des tâches à la demande, telles que la génération de photos miniatures, ou des calculs basés sur les entrées de l'utilisateur. Ceux-ci n'ont pas besoin de points de terminaison disponibles en externe. Vous pouvez transférer vos demandes dans une file d'attente, puis exécuter une tâche qui se nourrit simplement de cette file d'attente (et vous pouvez également faire évoluer ce processus sur plusieurs instances, les messages de la file d'attente étant utilisé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 votre code de projet. Toutes les langues peuvent faire REST appels à l'API Azure et plusieurs langues (y compris celles mentionnées ci-dessus) disposent d'un SDK qui s'en occupe pour vous. Tous les SDK de langues sont here , avec le code source sur github, here .
  • Avec un rôle VM, vous pouvez installer et exécuter des logiciels avec des installations très complexes/fastidieuses, des installations nécessitant une intervention manuelle et des installations qui ne peuvent pas être automatisées de manière fiable. Vous devez gérer le système d'exploitation Au-delà VM Rôle, il existe maintenant des machines virtuelles, fournissant une construction VM) basée sur le cloud avec le support Windows et Linux. suggérer des machines virtuelles sur le rôle 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 machine virtuelle.

Avec les rôles VM, vous créez une image Windows Server complète, vous y ajoutez les points d'ancrage Azure, puis transférez l'intégralité de VM dans le cloud (puis vous maintenez la VM au fil du temps).

Avec les machines virtuelles, il vous suffit de sélectionner 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 le stockage d'objets blob. Vous avez ensuite RDP/SSH et le configurer comme vous le souhaitez.

Porter le chapeau d'architecte, c'est là que ça devient amusant et intéressant. Vous pouvez exécuter des services Web dans un rôle Web ou un rôle de travail (et pouvoir 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 scinder en plusieurs rôles pour répondre à différents besoins d'évolutivité.

Pour bien commencer, jetez un coup d'œil au kit de formation à la plate-forme et commencez à parcourir les exercices.

99
David Makogon
  • Les rôles Web sont des applications Web hébergées dans IIS.
  • Les rôles de travail sont des processus qui peuvent faire du travail (c'est-à-dire compresser automatiquement les images téléchargées, faire des choses chaque fois que quelque chose change dans votre base de données, obtenir de nouveaux messages dans la file d'attente et les processus, vous le nommez)
  • Rôles de machine virtuelle
30
Dennis Traub

J'ai rencontré cette SO question/réponse il y a plusieurs jours et j'ai trouvé les réponses fournies un peu en face de moi (je suis nouveau chez Azure et Web). J'ai trouvé ce résumé dans les fondamentaux d'Azure Ce soir, je pensais être une bonne vue d’ensemble des différences fondamentales entre les rôles de travailleur et de Web:

La principale différence entre les deux réside dans le fait qu'une instance de rôle Web exécute IIS, contrairement à une instance de rôle de travail. Cependant, les deux sont gérés de la même manière et il est courant qu'une application les utilise tous les deux. Par exemple, une instance de rôle Web peut accepter des demandes d'utilisateurs, puis les transmettre à une instance de rôle de travail pour traitement. Pour agrandir ou réduire votre application, vous pouvez demander à Windows Azure de créer davantage d'instances de ce rôle ou de fermer des instances existantes. Et comme pour les machines virtuelles Windows Azure, vous êtes facturé uniquement pour la durée d'exécution de chaque instance de rôle Web ou de travail.

Si vous débutez dans le développement Azure, je vous recommande vivement de lire l'intégralité de l'article ici: Introduction à Windows Azure

J'espère que cela aide quelqu'un autant que cela m'a aidé à allumer l'ampoule.

21
BrianLegg

Les rôles Web dans Windows Azure ont une fonction spécifique et fournissent un serveur Web IIS (Internet Information Services) dédié à l'hébergement d'applications Web frontales. Vous pouvez rapidement et facilement déployer des applications Web sur des rôles Web, puis adapter vos capacités de calcul à la hausse ou à la baisse pour répondre à la demande.

3
Sufy Khan