porta microsoft management azure azure-worker-roles azure-web-roles

microsoft - MĂșltiples roles en la misma instancia en Windows Azure



porta azure (4)

¿Es posible desplegar múltiples roles en la misma instancia?

Tengo tres roles web (sitio web en asp.net mvc3 y dos instancias de servicios WCF) y dos roles de trabajador (servicios de Windows).

La carga para esta aplicación es muy pequeña, por lo que no quiero crear tantas instancias en Windows Azure y pagar todas las instancias ahora. En su lugar, quiero implementar todas mis aplicaciones en la misma instancia y cambiarlas más adelante si obtengo algún ingreso de mis aplicaciones.

Busqué en Google y encontré algunas publicaciones en el foro de las que es posible y otras que no es posible ... pero no puedo encontrar información sobre cómo hacerlo ...

Entonces dos preguntas: ¿Es posible? ¿Cómo puedo hacerlo?




No, los roles son instancias y cada uno ocupa una máquina virtual completa. Sin embargo, puede implementar una serie de sitios web en una sola función, lo que le permitirá implementar todas sus aplicaciones MVC y WCF en una sola función web. Debe agregar sitios web al elemento sitios en la definición de servicio . Parece que hay algunas publicaciones de blog sobre cómo se hace esto, here y here .

Para los roles de trabajador, le sugiero que cree un solo rol de trabajador y combine el trabajo realizado en esos roles, como iniciar un hilo separado para cada cola que se monitorea. Esta respuesta de Eugenio Pace.

No recomendaría tratar de combinar la funcionalidad de rol de trabajador en el rol web. Además de no tener sentido arquitectónico, sentido para la infraestructura física (IIS vs no IIS), existen problemas potenciales, como la terminación de subprocesos en ejecución cuando se reciclan los roles de los trabajadores (un subproceso no iniciado por IIS puede terminar abruptamente)


Una respuesta ligeramente diferente a la de @ Simon''s ... Un rol es en realidad una plantilla para una VM de Windows Server 2008 (vea también mi respuesta en esta pregunta SO ). Cada rol tiene una o más instancias, y puede ejecutar lo que quiera en cualquier rol.

Absolutamente puede ejecutar su sitio web y todos sus servicios WCF en un solo rol. Ahora escalará su aplicación hacia arriba / abajo (tamaño de máquina virtual) y hacia fuera / dentro (número de instancias) como una unidad de escala única. Si, por ejemplo, sus servicios WCF requieren un uso intensivo de la CPU, lo que hace que las instancias de VM disminuyan la velocidad de sus visitantes web, deberá escalar lo suficiente para manejar a esos visitantes.

Una vez que alcance una carga de tráfico significativa, vale la pena considerar roles separados. De esa manera, puede decidir el tamaño y la cantidad de VM por rol . Tal vez tenga 2 o 3 instancias pequeñas de un rol web para manejar su tráfico de usuario en el sitio web, y tal vez 2 instancias medianas de un rol de trabajador para manejar los servicios WCF (solo como un ejemplo). Cuantos más roles tenga, la escala de grano más fino tiene, pero debe ejecutar al menos una instancia de cada rol, lo que eleva el costo de referencia de su "sistema en reposo".