¿Cómo se utiliza Asp.Net Core Hosting Model en aplicaciones web?

Asp.net core tiene una mejora significativa en el modelo de alojamiento. Se esperaba que en las versiones anteriores alojara las aplicaciones web Asp.net Core a través de servidores web proxy como IIS en Windows, Apache o NGINX. Sin embargo, el nuevo Asp.net core 2.2 permite alojar directamente la aplicación Asp.net en Windows dentro de IIS sin los requisitos del servidor externo. Por lo tanto, esto aumenta el rendimiento utilizando un mecanismo de alojamiento simple en proceso.

Modelos de alojamiento en ASP.NET Core

ASP.NET es una tecnología de Microsoft que le permite crear páginas dinámicas en el lado del servidor web.

Hosting ASP.NET está completamente integrado con el software basado en Windows, así como con el sistema operativo en sí. Esta tecnología se considera bastante segura y confiable, así como fácil de usar. Se utiliza principalmente para el desarrollo de productos en la aplicación.

Los modelos de alojamiento en ASP.NET Core son de dos tipos, es decir, alojamiento en proceso y alojamiento fuera de proceso. Antes de ASP.Net Core 2.2 solo había un modelo de alojamiento, que es el alojamiento fuera de proceso, pero debido al rendimiento, se presenta el modelo de alojamiento en proceso en las versiones de Asp.net core 2.2.

Introducción del modelo de alojamiento en proceso en Asp.net Core

Las versiones anteriores de ASP.NET Core requerían una para hospedar la aplicación en IIS utilizando un modelo de alojamiento fuera de proceso que representa a través de IIS. Las solicitudes que llegan a IIS o IIS Express se reenvían a la aplicación web ASP.NET Core que se ejecuta en Kestrel Web Server. Sin embargo, con el nuevo alojamiento en proceso, solo se usa un servidor para alojamiento como IIS, Nginx o Linux. Significa que, en lugar de reenviar solicitudes a Kestrel, una nueva implementación de servidor web (IISHttpServer) se aloja directamente dentro del grupo de aplicaciones IIS, que atenderá la solicitud. Con ASP.NET Core 3.1, el modelo de alojamiento en proceso se usa como modelo predeterminado siempre que desarrolle una nueva aplicación usando una plantilla existente.

Aparentemente, este modelo de alojamiento tiene una mejora de rendimiento y rendimiento muy alta en comparación con el modelo de alojamiento fuera de proceso.

Modelo de alojamiento fuera de proceso

En los modelos de alojamiento fuera de proceso, puede usar el servidor Kestrel directamente como un servidor de solicitud de usuario o puede implementar la aplicación en IIS que actuará como un servidor proxy y envía solicitudes al servidor interno de Kestrel. En este tipo de modelo de alojamiento, tiene dos opciones de alojamiento, es decir, usar Kestrel y Proxy Server:

1. Usando Kestrel

En esto, Kestrel en sí mismo actúa como servidor perimetral que directamente solicita el usuario del servidor, lo que significa que solo se puede usar el servidor Kestrel para la aplicación.

2. Usando un servidor proxy

Debido a las limitaciones del servidor Kestrel, no se puede usar esto en todas las aplicaciones. En tales casos, uno tiene que usar servidores potentes como IIS, Apache o NGINX. Entonces, en esta situación, este servidor actúa como un servidor proxy de reserva que redirige cada solicitud al servidor Kestrel interno donde se ejecuta la aplicación. Aquí, se ejecutan dos servidores como IIS y Kestrel.

Este modelo de alojamiento es un modelo predeterminado para todas las aplicaciones implementadas en la versión anterior de .NET Core 2.2. Una de las limitaciones de usar este tipo, como la lentitud del rendimiento.

Pensamientos finales:

Según los hechos, la mayoría de las  Empresas de desarrollo web ASP.Net   ciertamente quieren usar el modelo de alojamiento en proceso. Dado que consume menos recursos y proporciona un buen rendimiento. Como no necesita un proceso adicional para Kestrel y también evita la comunicación adicional entre el IIS y Kestrel. Sin embargo, hay casos en los que uno puede elegir el alojamiento fuera de proceso, como en el caso del alojamiento de la misma aplicación web en Windows y Linux. Cuando se habla de alojar la aplicación en otras plataformas, Kestrel es el mecanismo principal utilizado para manejar las solicitudes HTTP en todas las plataformas.

Sin embargo, ejecutar In-Process en IIS es la mejor manera a menos que tenga un requisito muy específico para Kestrel.

Crédito de la imagen principal: Foto de Farzad Nazifi en Unsplash




Comentarios (0)

Deja un comentario