Pregunta

Estoy investigando algunas cosas de Windows Azure, para tomar una decisión de mudarse a Azure o no.

Información básica
Para responder a la pregunta, necesitará una comprensión básica de mi aplicación, así que aquí va.

La aplicación es una aplicación ASP.NET MVC 3 que se conecta a una base de datos SQL Server.

Es una aplicación de instancia única, lo que significa que cada cliente eventualmente tiene su propia instancia de la aplicación que se ejecuta en nuestro servidor, implementada en IIS 7 como sitio web.

Tengo un servidor SQL, donde cada instancia tiene su propia base de datos.

También tengo un conjunto de servicios de Windows para hacer un procesamiento de fondo. Eso debería ser sencillo, ya que solo reescribiré a ellos para usar un papel de trabajador en Windows Azure: la mayor parte de la lógica en los servicios se encuentra en su propia clase (biblioteca) de todos modos, por lo que el servicio solo llama a uno o más Métodos en una clase.

Ahora a la pregunta
Cada vez que alguien se registra para una prueba gratuita, agrego un registro a una base de datos de administración que tengo.

Luego tengo un servicio de Windows que implementa una nueva instancia de la aplicación ASP.NET MVC 3 a IIS, otorga permiso a algunas carpetas, ejecuta el script de implementación de la base de datos y actualiza el registro para reflejar que ahora se ha implementado y finalmente envía Un correo electrónico a la perspectiva de que se haya creado su prueba gratuita, así es como se accede a ella.

Entonces, ¿cómo puedo implementar una nueva instancia en Windows Azure de un rol de trabajador? Preferiblemente, solo agregaría un nuevo sitio web a una instancia de Azure existente y crearía una nueva base de datos SQL Azure para que ese sitio en particular lo use.

¿Esto requiere mucho trabajo para configurar? ¿Es posible?

¿Fue útil?

Solución

Basado en dos citas, me gustaría sugerir que llame a esto una aplicación de múltiples inquilinos:

Es una aplicación de instancia única, lo que significa que cada cliente eventualmente tiene su propia instancia de la aplicación que se ejecuta en nuestro servidor,

Y...

Un servicio de Windows que implementa una nueva instancia de la aplicación ASP.NET MVC 3 a IIS, otorga permiso a algunas carpetas

Si entiendo correctamente, hay "un" servidor IIS (bueno, en Windows Azure, es un papel web, escalable para múltiples instancias), y con cada nuevo "inquilino", configuras algunas cosas nuevas para admitir ese inquilino.

Si ese es realmente el caso, definitivamente puede hacer esto desde el rol de un trabajador, solo mire a Nate Totten's Blog de rol web de múltiples inquilinos Código post y relacionado. Mire el código WebDeploy que realmente manipula IIS.

Además: eche un vistazo a Nube Ninja, un proyecto que algunos de mis compañeros de equipo publicaron junto con FullScale180. Esta es una aplicación de múltiples inquilinos que demuestra cómo administrar múltiples clientes en una sola implementación, así como monitorear y escalar.

Finalmente: si necesita crear nuevos hosts de servicio y cuentas de almacenamiento, las últimas actualizaciones del API de administración de Windows Azure apoyar esto. Espero que eso ayude un poco ...

Otros consejos

Creo que la mayoría de las cosas que quieres lograr son posibles.

¡Definitivamente requerirá algo de trabajo para configurar!

Para obtener algunas ideas sobre cómo lograr lo que está buscando, eche un vistazo al ejemplo de MS SaaS - http://www.fabrikamshipping.com/ - Especialmente diseñado para portar aplicaciones existentes a SaaS en Azure. Dentro de esta aplicación tienen un "proceso de incorporación", y ese proceso incluye la configuración de nuevas conexiones SQL y nuevos portales.

Hay muchos buenos blogs (mira el video) sobre esto en http://blogs.msdn.com/b/vbertocci/archive/2010/10/07/new-online-demo-introducing-fabrikamshipping-saas.aspx

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