Como o Asp.Net Core Hosting Model é usado em aplicativos da Web?

O núcleo do asp.net tem aprimoramento significativo no modelo de hospedagem. Era esperado nas versões anteriores hospedar os aplicativos Web Asp.net Core através de servidores proxy da Web, como IIS no Windows, Apache ou NGINX. No entanto, o novo Asp.net core 2.2 permite hospedar diretamente o aplicativo Asp.net no Windows no IIS sem os requisitos de servidor externo. Assim, isso aumenta a taxa de transferência usando um mecanismo de hospedagem simples em processo.

Hospedando modelos no núcleo do ASP.NET

O ASP.NET é uma tecnologia da Microsoft que permite criar páginas dinâmicas no lado do servidor da Web.

Hosting Asp.net está totalmente integrado ao software baseado no Windows, bem como ao próprio sistema operacional. Essa tecnologia é considerada bastante segura e confiável, além de fácil de usar. É usado principalmente para o desenvolvimento de produtos no aplicativo.

Os modelos de hospedagem no ASP.NET Core são de dois tipos, como Hospedagem em processo e Hospedagem fora de processo. Antes do ASP.Net Core 2.2, havia apenas um modelo de hospedagem, que está fora de processo, mas devido ao desempenho, o Modelo de Hospedagem em Processo nas versões do Asp.net core 2.2 foi introduzido.

Introdução do modelo de hospedagem em processo no Asp.net Core

As versões anteriores do ASP.NET Core exigiam uma para hospedar o aplicativo no IIS usando um modelo de hospedagem Fora de Processo que faz proxy por meio do IIS. As solicitações que atingem o IIS ou o IIS Express são encaminhadas para o aplicativo Web ASP.NET Core em execução no Kestrel Web Server. No entanto, com a nova hospedagem em processo, apenas um servidor é usado para hospedagem como IIS, Nginx ou Linux. Isso significa que, em vez de encaminhar solicitações ao Kestrel, uma nova implementação do servidor Web (IISHttpServer) é hospedada diretamente dentro do pool de aplicativos IIS, que atenderá à solicitação. Com o ASP.NET Core 3.1, o modelo de hospedagem em processo é usado como modelo padrão sempre que você desenvolve um novo aplicativo usando um modelo existente.

Aparentemente, esse modelo de hospedagem possui um alto rendimento de transferência e aprimoramento de desempenho em comparação com o modelo de hospedagem Fora de Processo.

Modelo de Hospedagem Fora de Processo

Nos modelos de hospedagem fora de processo, você pode usar o servidor Kestrel diretamente como um servidor de solicitação de usuário ou pode implantar o aplicativo no IIS, que atuará como servidor proxy e envia solicitações ao servidor Kestrel interno. Nesse tipo de modelo de hospedagem, você tem duas opções de hospedagem, ou seja, usando o Kestrel e o Proxy Server:

1. Usando o Kestrel

Nisso, o próprio Kestrel atua como servidor de borda, que atende diretamente as solicitações do usuário, o que significa que só é possível usar o servidor Kestrel para o aplicativo.

2. Usando um servidor proxy

Devido às limitações do servidor Kestrel, não é possível usá-lo em todos os aplicativos. Nesses casos, é preciso usar servidores poderosos como IIS, Apache ou NGINX. Portanto, nessa situação, esse servidor atua como um servidor proxy de reserva que redireciona todas as solicitações para o servidor Kestrel interno onde o aplicativo está sendo executado. Aqui, dois servidores como IIS e Kestrel estão em execução.

Este modelo de hospedagem é um modelo padrão para todos os aplicativos implementados na versão anterior do .NET Core 2.2. Uma das limitações do uso desse tipo, como lentidão no desempenho.

Pensamentos finais:

Conforme os fatos, a maioria das empresas de desenvolvimento web do ASP.Net certamente deseja usar o modelo de hospedagem em processo. Uma vez que consome menos recursos e oferece bom desempenho. Como ele não precisa de um processo adicional para o Kestrel e também evita a comunicação extra entre o IIS e o Kestrel. No entanto, há casos em que pode-se escolher a hospedagem Fora de Processo, como no caso da hospedagem do mesmo aplicativo Web no Windows e no Linux. Ao falar sobre hospedagem do aplicativo em outras plataformas, o Kestrel é o mecanismo principal usado para lidar com solicitações HTTP em todas as plataformas.

No entanto, a execução de processos no IIS é a melhor maneira, a menos que você tenha um requisito muito específico para o Kestrel.

Crédito da foto principal: Photo by Farzad Nazifi on Unsplash




Comentários (0)

Deixe um comentário