Pregunta

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

Tengo tres roles web (sitio web en ASP.NET MVC3 y dos instancias de servicios de WCF) y dos roles de trabajadores (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 toda mi aplicación en la misma instancia y cambiarla más tarde si obtengo algunos ingresos de mis aplicaciones.

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

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

¿Fue útil?

Solución

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

Puede ejecutar absolutamente su sitio web y todos sus servicios de WCF en un solo rol. Ahora escalará su aplicación arriba/abajo (tamaño de VM) y out/in (# de instancias) como una unidad de escala única. Si, por ejemplo, sus servicios de WCF tienen mucha CPU, lo que hace que las instancias de VM disminuyan la velocidad para sus visitantes de la web, deberá escalar lo suficiente para manejar a esos visitantes.

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

Otros consejos

No, los roles son instancias y cada uno ocupa una VM completa. Sin embargo, puede implementar una serie de sitios web en un solo rol, que le permitirá implementar todas sus aplicaciones MVC y WCF en un solo rol web. Necesita agregar sitios web al Elemento de sitios en el servicio de servicio de servicio. Parece que hay algunas publicaciones de blog sobre cómo se hace esto - aquí y aquí.

Para los roles de los trabajadores, le sugiero que cree un solo rol de trabajador y combine el trabajo realizado en esos roles, como comenzar un hilo separado para cada cola que se está monitoreando. Este Respuesta de stackoverflow por Eugenio Pace.

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

Verifique este episodio de Cloud Cover. Puede poner un par de rol web en la misma instancia. Role del trabajador Siempre puede poner múltiples hilos para trabajar los datos.

http://channel9.msdn.com/shows/cloud+cover/cloud-cover-episode-37-multiple-websites-in-a-web-role.

Tenga en cuenta que cada vez que sube una nueva versión a Azure, necesita cargar todos los roles web/ roles de trabajadores a Azure nuevamente

Echa un vistazo a esta publicación de blog 'que combina múltiples roles de trabajadores de azul en un rol web de Azure'http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2012/02/combining-multiple-azure-worker-roles.html

Creo que esto es lo que necesitas hacer ...

También Wayne tiene variaciones de esto en su blog: http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2010/12/how-to-combine-worker-and-web-role-in.html

Hth

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top