¿Puedo diseñar una aplicación web para que pueda ser desplegado ya sea a la nube o un servidor dedicado / VPS? ¿Cómo?

StackOverflow https://stackoverflow.com/questions/3049793

Pregunta

es que hay una arquitectura bastante versátil que puede ser desplegado a un servidor de nube o de un servidor dedicado (o VPS) con un cambio mínimo? Obviamente habría cambios de configuración pero prefiero dejar el resto de la aplicación coherente, manteniendo una base de código mantenible.

La aplicación sería ASP.NET y / o ASP.MVC. Mi entorno de desarrollo es VS 2010. La nube puede, o no puede ser, Azure. Dedicado o VPS sería Windows Server 2008. Probablemente.

No es un sitio web de cara al público. La aplicación web que tengo en mente sería un despliegue separado para cada cliente. Algunos clientes serían pequeña escala, algunos prefieren la aplicación se ejecute en una intranet local en lugar de en la web. Otros clientes pueden preferir el enfoque de enturbiamiento para una solución de recuadro negro. La aplicación puede funcionar durante unas horas o puede funcionar indefinidamente, que depende del cliente y del proyecto. Aparte de escenarios de implementación de las aplicaciones serían más o menos idénticos.

Como se puede ver en las etiquetas, estoy asumiendo una arquitectura basada en mensajes es probablemente la más versátil, pero también estoy acostumbrado a estar equivocado acerca de estas cosas.

Todas las sugerencias y punteros de bienvenida con respecto a las arquitecturas generales y también soluciones específicas.

¿Fue útil?

Solución

Sí, esto es posible. La aplicación web istelf (MVC o formularios web) probablemente seguirá siendo el mismo (con cambios de configuración).

Si está pensando en Windows Azure como la opción de implementación "nube", entonces las cosas más importantes a tener en cuenta son:

aplicación Web:

    gestión
  • Sesión: usted tendrá que usar un enfoque amigable granja de servidores web (por ejemplo, no se puede utilizar en memoria de estado de sesión en el servidor)
  • uso
  • Ancho de banda: cuando se implementa a la nube, las latencias son superiores al 100% en las instalaciones, también pagar más por más bits que envíe un lado a otro. Hay un $ incentivo para la creación de aplicaciones más frugal.
  • mecanismo
  • Autenticación: si quiere ofrecer SSO es probable que tenga que pasar a enfoque basado en reclamaciones (usando WIF). Esto es en gran parte algo que se puede aislar y cambio (por ejemplo, seguridad integrada de Windows en las instalaciones, las reclamaciones basadas en la nube)
  • Use todos los proveedores convencionales (por ejemplo el perfil, la pertenencia, la localización, etc). Existen implementaciones de victorias Azure de todo, por lo que sólo se pueden cambiar.

Datos:

  • El método más sencillo para la máxima portabilidad es utilizar SQL Azure, que es una (gran) subconjunto de SQL Server.
  • Si utiliza otro sistema de almacenamiento (por ejemplo, tablas de Windows Azure, etc), entonces usted necesita para abstraer de todo acceso a datos en la aplicación (trabajo mucho más difícil)
  • Además de no algunas de las características disponibles en SQL Azure (como SQLCLR, SQL Broker) hay límites para el tamaño de la base de datos (max = 50 GB en la actualidad). Por lo tanto, si las bases de datos de sus clientes crecen más allá de eso, es necesario dividir el db (lo que añade más complejidad, pero es factible)

Administración

  • Si utiliza métodos estándar para el registro y rastreo (por ejemplo Systems.Diagnostics, etc) la aplicación seguirá siendo básicamente el mismo. Sus procesos tendrán que ser adaptados (y las secuencias de comandos, etc)

Mucho más detalles están disponibles aquí .

No sé lo que estaba tratando de considerar las colas de mensajes para, pero eso es algo que también puede abstracta (por ejemplo, para MSMQ en las instalaciones, Windows Azure cola para la nube). Usted tendrá que acomodar algunas diferencias semánticas, pero es factible.

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