En un servidor que ejecuta varios sitios ASP.NET, ¿es mejor utilizar un grupo de aplicaciones por sitio o para que los sitios compartan un solo grupo de aplicaciones? ¿Cuáles son las ventajas o desventajas inherentes a cada configuración? ¿O hay una regla dura y rápida aquí?Compartir grupos de aplicaciones .NET
Respuesta
Esto realmente depende de cuáles son los requisitos del sitio, así como su preocupación con respecto a los riesgos.
Cuando dos aplicaciones se ejecutan dentro del mismo grupo de aplicaciones tienen el mismo nivel de seguridad, por lo que hay una preocupación de seguridad para algunos ya que en teoría cada uno podría tener acceso a los archivos de la otra. Además, si un sitio comienza a tener problemas y utiliza memoria, podría causar reciclajes o heladas que podrían afectar a ambos.
Aunque no hay una regla "difícil y rápida" para esto, algunas de las cosas que considero y que causan decisiones "automáticas" para mí son las siguientes.
- ¿La aplicación es crítica? (En caso afirmativo, grupo de aplicaciones separado)
- ¿Es esta una aplicación de terceros? (De ser así, e inseguro de todo lo que hace, fondo de aplicaciones separado)
- ¿Esta aplicación verá picos de actividad importantes? (De ser así, podría ser mejor aislarlo)
Hay mucho por ahí, pero las claves son el aislamiento y la capacidad de solucionar problemas de aplicaciones individuales. Aquí hay un Microsoft article que también toca un poco.
Sería dependerá mucho de si ciertos sitios necesitan más fiabilidad que otros, lo que su carga esperada por sitio es, etc.
que comparten una piscina será más eficiente en general, pero una sola aplicación puede más mal comportamiento causar problemas rápidamente para otros sitios. Además, puede reciclar o actualizar grupos de aplicaciones por separado, lo que puede facilitar los calendarios de mantenimiento.
No hay una regla rígida. Tiendo a usar un grupo de aplicaciones por sitio (e IIS7 incluso de manera predeterminada a crear uno por sitio) porque me gusta ir a lo seguro en caso de que tenga una pérdida de memoria en un sitio/grupo, no quiero que afecte y elimine otros sitios. Pero también tengo algunos servidores donde 100 sitios comparten un único grupo sin problemas. Entonces, como siempre, depende.
¿Por qué arriesgar 100 sitios por grupo único? ¿Qué estás ganando? Si la ejecución está pausada para uno, ¿no están todos pausados? ¿Sería 4 A/Ps con 25 sitios cada uno un poco más de trabajo pero más resistente? – Markive
Una de las ventajas de los AppPools por separado es que, en el caso de que necesite reciclar el AppPool, puede hacerlo para un sitio sin afectar el rendimiento (o almacenamiento en caché) de los demás.
Preferiría una sola aplicación, un solo grupo de aplicaciones, ya que tiene problemas de rendimiento. Una excepción en el hilo de fondo (una vez que alguien comienza a jugar de manera sincronizada) puede derribar todo el grupo de aplicaciones. Y a menos que tenga el reciclaje automático habilitado, esto puede causar muchos problemas.
Una regla fundamental para recordar:
NO put .Net 1.1 y 2.0 de .NET aplicaciones en el mismo grupo de aplicaciones. Enredará las cosas muy rápido.
- 1. Enumeración de grupos de aplicaciones en IIS
- 2. Compartir vistas, lógica, etc. entre aplicaciones MVC
- 3. compartir datos entre dos aplicaciones de iphone
- 4. Compartir modelos entre las aplicaciones de Django
- 5. Compartir datos de iCloud entre dos aplicaciones
- 6. Grupos de aplicaciones no se inicia después de iisreset
- 7. Monitoreo .NET Aplicaciones ASP.NET
- 8. Android: compartir actividades/código entre diferentes aplicaciones
- 9. Compartir datos entre aplicaciones en un iDevice
- 10. Compartir modelos entre aplicaciones Rails usando gems
- 11. Cómo compartir sesiones en aplicaciones montadas expresas
- 12. CodeIgniter: Aplicaciones múltiples, ¿cómo compartir recursos?
- 13. ¿Cómo compartir objetos entre aplicaciones java?
- 14. Cómo compartir configuraciones de configuración entre varias aplicaciones
- 15. ¿Cómo puedo compartir sesiones autenticadas basadas en .NET (C#) entre formularios web y aplicaciones MVC2?
- 16. Grupos de aplicaciones de IIS: detener/iniciar frente a reciclar
- 17. Grupos de aplicaciones de IIS y clases estáticas
- 18. Cómo compartir datos de llavero entre aplicaciones de iOS
- 19. Cómo compartir carpeta de aplicaciones a otro usuario de Dropbox
- 20. Cómo compartir el conjunto de conexiones entre múltiples aplicaciones Java
- 21. ¿Cómo puedo compartir modelos de mangosta entre 2 aplicaciones?
- 22. Compartir base de datos entre 2 aplicaciones en Heroku
- 23. La mejor manera de compartir imágenes entre varias aplicaciones
- 24. ¿Se pueden compartir SharedPreferences entre diferentes aplicaciones de Android?
- 25. Pros y contras de tener grupos de aplicaciones dedicados sobre mantener aplicaciones web en un grupo de aplicaciones predeterminado
- 26. Hibernate Distributed Cache: ¿pueden varias aplicaciones compartir el mismo caché?
- 27. ¿Pueden dos aplicaciones Silverlight compartir IsolatedStorage en una sola máquina?
- 28. Compartir controladores y vistas con múltiples aplicaciones web
- 29. Compartir modelos entre 2 API Rails (aplicaciones separadas)
- 30. Compartir archivos temporales entre aplicaciones sin tarjeta SD
Entonces, si el ciclo de vida de la página, por ejemplo, de un cliente requiere una gran cantidad de recursos y tiempo para completar, sería mejor separarlo en grupos de aplicaciones separadas para que los hilos no se recojan todos. – Markive