Question

Est-il possible de déployer plusieurs rôles dans la même instance?

J'ai trois rôles web (site web en asp.net MVC3, et deux services WCF instances) et deux rôles de travailleurs (services de fenêtres).

La charge pour cette application est très faible, donc je ne veux pas créer autant de cas dans Windows Azure et payer pour tous les cas maintenant. Au lieu de cela, je veux déployer tout mon application dans la même instance et le changer plus tard si je vais obtenir un revenu de mes applications.

J'ai googlé et trouvé quelques messages du forum qu'il est possible et certains que ce n'est pas possible ... mais je ne peux pas trouver de l'information comment le faire ...

Alors deux questions: C'est possible? Comment puis-je faire?

Était-ce utile?

La solution

Une réponse légèrement différente de celle @ Simon ... Un rôle est en fait un modèle pour une machine virtuelle Windows Server 2008 (voir ma réponse sur cette question SO ainsi). Chaque rôle a une ou plusieurs instances, et vous pouvez exécuter tout ce que vous voulez sur un rôle.

Vous pouvez tout à fait votre site Web et exécuter tous vos services WCF dans un seul rôle. Vous allez maintenant l'échelle de votre application haut / bas (taille VM) et out / in (nombre de cas) comme une seule unité à grande échelle. Si, par exemple, vos services WCF sont CPU à forte intensité, ce qui provoque les instances VM de ralentir pour vos visiteurs web, vous aurez besoin à l'échelle assez sur pour gérer les visiteurs.

Une fois que vous atteignez une charge de trafic important, il est utile d'examiner des rôles distincts. De cette façon, vous pouvez décider de la taille et de la quantité VM par rôle . Peut-être vous avez 2 ou 3 petites instances d'un rôle Web pour gérer votre trafic utilisateur sur le site, et peut-être 2 cas moyen d'un rôle à la poignée des travailleurs des services WCF (comme un exemple). Plus les rôles que vous avez, vous avez mise à l'échelle plus fine grain, mais vous devez exécuter au moins une instance de chaque rôle, qui élève votre « système au repos » coût de base.

Autres conseils

Non, les rôles sont des instances et chacun prend toute une machine virtuelle. Vous pouvez cependant déployer un certain nombre de sites dans un seul rôle, ce qui vous permettra de déployer tous vos MVC et WCF apps dans un rôle Web unique. Vous devez ajouter des sites Web à la dans la ServiceDefinition . Il semble y avoir quelques messages de blog sur la façon dont cela est fait - ici et ici .

Pour les rôles des travailleurs, je vous suggère de créer un seul rôle de travailleur et de combiner le travail accompli dans ces rôles, tels que le démarrage d'un thread séparé pour chaque être de file d'attente contrôlée. Cette StackOverflow réponse par Eugenio Pace.

Je ne recommande pas d'essayer de combiner la fonctionnalité de rôle des travailleurs dans le rôle du web. En dehors de cela n'a aucun sens architectural, le sens de l'infrastructure physique (IIS vs pas IIS), il y a des problèmes potentiels comme le cas de terminaison des threads en cours d'exécution lorsque les rôles des travailleurs recyclage (un thread pas commencé par IIS peut mettre fin brusquement)

Vérifiez cet épisode de la couverture nuageuse. vous pouvez mettre deux rôle Web dans la même instance. rôle de travailleur, vous pouvez toujours mettre multifilet travailler les données.

http://channel9.msdn.com/Shows/Cloud+Cover/Cloud-Cover-Episode-37-Multiple-Websites-in-a-Web-Role .

Notez que chaque fois que vous téléchargez une nouvelle version pour vous azur besoin de télécharger tous les rôles web / rôles de travailleur à nouveau d'azur

Découvrez ce blog « La combinaison de plusieurs Azure travailleurs rôles dans un rôle Web Azure » http: // www .31a2ba2a-b718-11dc-8314-0800200c9a66.com / 2012/02 / combinant-multiples-travailleur-azur roles.html

Je pense que c'est ce que vous devez faire ...

En outre Wayne a des variations de ce sur son blog: http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2010/12/how-to-combine-worker-and-web-role- in.html

HTH

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top