Hospedando uma Aplicação Web em .NET 7 sem custos no Azure

Fotografia de Thiago Vivas de Araújo
Escrito por

Thiago Vivas de Araújo

Software Architech

O Microsoft Azure é uma plataforma de nuvem amplamente utilizada que oferece uma variedade de serviços para hospedar e gerenciar aplicativos web. Neste artigo técnico, explicaremos passo a passo como hospedar um site desenvolvido em .NET 7 no Azure, proporcionando uma infraestrutura escalável.

Objetivos

  • Apresentar o Microsoft Azure como uma plataforma de nuvem abrangente e confiável para hospedar aplicativos web, incluindo sites desenvolvidos em .NET 7.

  • Explicar os principais recursos e benefícios do Microsoft Azure, destacando a escalabilidade automática, segurança avançada, integração com outras ferramentas Microsoft e economia de custos.

  • Fornecer uma visão detalhada sobre o Web App no Azure, um serviço de aplicativo altamente gerenciado que simplifica a hospedagem de aplicativos web.

  • Destacar as vantagens do Web App, como configuração simplificada, dimensionamento automático, gerenciamento centralizado e suporte a várias linguagens e estruturas.

  • Orientar os leitores sobre o processo de implantação de um Web App no Azure, explicando como criar e configurar um Web App usando o painel de controle do Azure.

  • Resumir a opção gratuita do plano de serviço "Grátis" do Web App, enfatizando suas limitações e direcionando os leitores para os planos pagos para projetos de produção ou com maior demanda de recursos.

  • Concluir ressaltando a importância de escolher a solução adequada no Azure para hospedar sites .NET 7, destacando os benefícios de utilizar o Azure para garantir um ambiente confiável, seguro e escalável para os aplicativos web.

O que é o Azure?

O Microsoft Azure é uma plataforma de computação em nuvem abrangente e altamente confiável, fornecida pela Microsoft. É amplamente utilizada por empresas de todos os tamanhos para hospedar, desenvolver e gerenciar uma variedade de aplicativos e serviços. Oferecendo uma combinação de infraestrutura como serviço (IaaS), plataforma como serviço (PaaS) e software como serviço (SaaS), o Azure é uma solução completa para atender às necessidades de modernização tecnológica das empresas.

Principais Recursos e Benefícios
  • Escalabilidade e Flexibilidade: O Azure oferece recursos de escalabilidade automática, permitindo que seus aplicativos se ajustem dinamicamente à demanda do usuário. Com a capacidade de dimensionar verticalmente (aumentar recursos em uma única máquina) e dimensionar horizontalmente (adicionar mais máquinas), você pode manter a alta disponibilidade mesmo em momentos de pico de tráfego.

  • Serviços de Nuvem Diversificados: A plataforma Azure disponibiliza uma ampla gama de serviços, incluindo hospedagem de aplicativos web, bancos de dados gerenciados, armazenamento em nuvem, análise de dados, inteligência artificial, Internet das Coisas (IoT), entre outros. Isso permite que as empresas escolham e combinem serviços específicos para suas necessidades, criando soluções personalizadas.

  • Segurança e Conformidade: O Azure é construído com robustas medidas de segurança para proteger os dados e aplicativos hospedados na nuvem. Ele oferece recursos de criptografia, gerenciamento de identidades, firewall de aplicativo e monitoramento contínuo para detectar e responder a possíveis ameaças.

  • Integração com Ferramentas Microsoft: Como uma oferta da Microsoft, o Azure tem integração perfeita com várias ferramentas e tecnologias da empresa, como o Visual Studio, .NET, SQL Server e Active Directory, facilitando a migração de aplicativos e serviços existentes para a nuvem.

  • Economia de Custos: O modelo de pagamento do Azure é baseado em pay-as-you-go, permitindo que as empresas paguem apenas pelos recursos utilizados. Isso elimina a necessidade de investimentos pesados em infraestrutura física e permite a redução de custos operacionais.

  • Disponibilidade Global: Com data centers espalhados por todo o mundo, o Azure oferece a opção de implantar aplicativos em várias regiões para reduzir a latência e garantir alta disponibilidade e desempenho para usuários em diferentes locais geográficos.

O que é um Web APP?

Um Web App no Microsoft Azure é um serviço de aplicativo altamente gerenciado que permite hospedar e executar aplicativos web de forma rápida e fácil, sem se preocupar com a complexidade da infraestrutura subjacente. É uma solução de Plataforma como Serviço (PaaS) que oferece um ambiente pronto para uso, permitindo que desenvolvedores e empresas implantem seus sites e aplicativos web sem se preocupar com a manutenção do sistema operacional, do servidor web e de outros componentes.

Principais Recursos e Benefícios do Web App
  1. Configuração Simplificada: Com o Web App no Azure, você pode implantar seu aplicativo com apenas alguns cliques, economizando tempo e esforço no processo de configuração. O Azure fornece opções predefinidas para diferentes tipos de aplicativos, como .NET, Node.js, Python, Java, PHP, entre outros, tornando o processo de implantação mais fácil e rápido.

  2. Dimensionamento Automático: O Web App permite a escalabilidade automática de recursos com base na demanda. Isso significa que, à medida que o tráfego do site aumenta, o Azure ajusta automaticamente os recursos disponíveis para garantir que seu aplicativo tenha o desempenho necessário, oferecendo uma experiência consistente para os usuários.

  3. Gerenciamento Centralizado: O painel de controle do Azure permite que você gerencie facilmente seus Web Apps em um único local. Você pode monitorar métricas de desempenho, definir alertas, examinar logs e acompanhar o uso de recursos.

  4. Segurança Avançada: O Azure oferece várias camadas de segurança para proteger seus aplicativos web. Isso inclui opções de certificados SSL para criptografia de dados, políticas de firewall de aplicativos, integração com o Azure Active Directory para gerenciamento de identidades e acesso, além de outros recursos para garantir a conformidade e a proteção dos dados.

  5. Integração com Serviços Azure: O Web App é perfeitamente integrado com outros serviços do Azure, como Bancos de Dados SQL do Azure, Armazenamento do Azure, Serviço de Aplicativo do Azure Functions e muitos outros. Essa integração permite que você crie soluções mais complexas, tirando proveito dos recursos adicionais disponíveis na plataforma.

  6. Suporte a Múltiplas Linguagens e Estruturas: Com suporte a diversas linguagens de programação e estruturas, o Web App no Azure oferece flexibilidade para desenvolver e hospedar aplicativos web em suas tecnologias preferidas, proporcionando um ambiente de desenvolvimento familiar e produtivo.

É mesmo grátis?

O Web App no Microsoft Azure não é totalmente gratuito. Embora exista uma opção gratuita (plano de serviço "Grátis") que permite hospedar um Web App básico com algumas restrições, existem limitações e recursos adicionais que são pagos.

Plano de Serviço "Grátis" (Free Tier)

O plano de serviço "Grátis" do Web App no Azure é destinado a fins de desenvolvimento, testes ou pequenos sites com baixo tráfego. Algumas características do plano "Grátis" incluem:

  1. Limite de Recursos: O plano "Grátis" possui limites de recursos, como quantidade de CPU, memória e tempo de processamento. Esses limites podem não ser suficientes para aplicações com alto tráfego ou que exijam muitos recursos computacionais.

  2. Custom Domain: Neste plano, você não pode utilizar um domínio personalizado (exemplo: seudominio.com) e fica restrito ao uso do subdomínio fornecido pelo Azure.

  3. SSL: O SSL (Secure Socket Layer) é suportado apenas para o domínio padrão fornecido pelo Azure. Para usar SSL com um domínio personalizado, é necessário fazer upgrade para um plano pago.

  4. Backup e Escalabilidade: O plano "Grátis" não oferece recursos avançados de backup automatizado e escalabilidade automática baseada na demanda.

Planos Pagos

Para obter recursos mais robustos, maior capacidade de processamento, escalabilidade automática, suporte para domínios personalizados e outras funcionalidades avançadas, é necessário fazer upgrade para um dos planos pagos do Web App. Os planos pagos oferecem diferentes níveis de recursos e opções de escalabilidade para atender às necessidades específicas de cada aplicativo.

O custo dos planos pagos depende dos recursos escolhidos, como poder de processamento, quantidade de memória, região de hospedagem, tráfego de rede e outros serviços integrados ao Web App, como bancos de dados e armazenamento.

Mãos à obra

Passo 1: Criar uma Conta no Microsoft Azure

Se você ainda não possui uma conta no Microsoft Azure, acesse o site oficial e crie uma conta gratuita. Caso já tenha uma conta, faça login no portal do Azure.

Passo 2: Preparar o Projeto .NET 7

Certifique-se de que seu projeto .NET 7 esteja devidamente configurado e funcional em sua máquina local. Verifique se todas as dependências e pacotes estão instalados corretamente e que o site está executando sem erros. 

Para esse exemplo foi criado um projeto do tipo Web APP usando .NET 7, não foi feita nenhuma alteração e temos toda a estrutura do projeto inicial. O projeto está hospedado no github e pode ser encontrado aqui.

projeto dellent thiago
Figura 1: A estrutura do projeto criado.

Se rodarmos o projeto localmente então temos esse resultado:

projeto thiago dellent
Figura 2: O resultado da execução do projeto ao rodar no Chrome.

Passo 3: Criar um Grupo de Recursos

Um grupo de recursos no Microsoft Azure é uma estrutura lógica que permite organizar e gerenciar recursos relacionados em um ambiente de nuvem. Ele atua como um contêiner que ajuda a gerenciar, monitorar e controlar todos os recursos que fazem parte de um aplicativo ou projeto específico. A principal finalidade de um grupo de recursos é facilitar a gestão, organização e colaboração em ambientes de nuvem complexos.

No portal do Azure, clique em "Grupos de Recursos" e em seguida, clique em "Adicionar". Escolha um nome para o grupo de recursos e selecione a região mais adequada para hospedar o site. A região afeta o desempenho e a latência do site para os usuários finais.

Passo 4: Criar um Web App

Dentro do grupo de recursos criado, clique em "Adicionar" e procure por "Serviço de Aplicativo". Clique em "Criar" e preencha as informações necessárias:

  • Nome do aplicativo: Escolha um nome único para identificar o serviço de aplicativo.

  • Assinatura: Selecione a assinatura da sua conta do Azure.

  • Grupo de recursos: Selecione o grupo de recursos criado anteriormente.

  • Tempo de execução: Escolha a versão do .NET (no caso, .NET 7) que será utilizada.

  • Sistema operacional: Escolha o sistema operacional desejado (Windows ou Linux, dependendo do seu projeto).

Exemplo de Web App criado:

Screenshot 2023-08-11 at 10.49.48
Figura 3: Visão geral do Web App criado.

Ao acedermos o endereço do nosso site temos então esse resultado:

web app azure dellent
Figura 4: Ecrã do nosso recém criado Web App hospedado pelo Azure.

Passo 5: Configurar as Configurações de Implantação

Opção A: Após a criação do serviço de aplicativo, navegue para ele no portal do Azure. Na seção "Implantação", escolha a opção de implantação adequada para o seu projeto. As opções comuns incluem "Implantação Local" (se você estiver usando o Git ou outra ferramenta de controle de versão), "Docker" (se o seu projeto estiver em um container) ou "FTP" (se você preferir enviar manualmente os arquivos do site).

Opção B: Fazer download do ficheiro com o perfil de publicação e importar no Visual Studio.

Fazemos o download do ficheiro pela página principal do nosso Web App.

web app thiago
Figura 5: Visão geral do Web App com sinalização de onde fazer o download do perfil de publicação.

Importamos o ficheiro pelo Visual Studio.

visual studio dellent
Figura 6: Menu de opções do Visual Studio ao clicar com o botão direito em cima do projeto.

Selecione então para criar um perfil e importe o ficheiro que acabou de fazer download.

dellent thiago azure
Figura 7: Opção para importar o perfil de publicação.

Esse deve ser o resultado do vosso ecrã:

Resultado após importação com sucesso do perfil de publicação.
Figura 8: Resultado após importação com sucesso do perfil de publicação.

E ao clicar em publish iremos ter o nosso projeto publicado no Azure:

Figura 9: ecrã do nosso projeto publicado no Web App do Azure.
Figura 9: ecrã do nosso projeto publicado no Web App do Azure.

Passo 6: Configurar as Variáveis de Ambiente

Em muitos casos, seu site pode depender de variáveis de ambiente para funcionar corretamente. No portal do Azure, navegue até a seção "Configurações" do seu serviço de aplicativo e adicione as variáveis de ambiente necessárias.

Vamos criar uma configuração de exemplo:

Figura 10: Criação de uma configuração da aplicação no Web App.
Figura 10: Criação de uma configuração da aplicação no Web App.

E então alteramos as seguintes classes em nosso projeto para ler essa configuração:

Index.cshtml.cs
Index.cshtml

Ao rodarmos localmente temos esse resultado, pois não temos a configuração carregada.

Figura 11: O nosso projeto ao rodar localmente após as alterações.
Figura 11: O nosso projeto ao rodar localmente após as alterações.

Ao fazermos uma nova publicação do nosso projeto ao Azure, após a alteração do código, teremos esse resultado:

Figura 12: O nosso projeto ao rodar no Azure após a publicação.
Figura 12: O nosso projeto ao rodar no Azure após a publicação.

Passo 7: Configurar o Domínio Personalizado - Opcional

Para utilizar um domínio personalizado, vá até a seção "Personalizar Domínio" no portal do Azure e siga as instruções para associar o domínio da sua empresa ao serviço de aplicativo hospedado no Azure.

Conclusão

Agora você tem um site .NET 7 hospedado no Microsoft Azure, pronto para ser acessado por seus usuários. Lembre-se de monitorar o desempenho e a utilização dos recursos para garantir que a hospedagem esteja adequada às necessidades do seu aplicativo. O Azure oferece ferramentas poderosas para monitoramento e escalabilidade, permitindo que você ajuste a infraestrutura conforme necessário.

Hospedar seu site no Azure oferece inúmeras vantagens, como a escalabilidade automática, alta disponibilidade, segurança avançada e uma série de outros serviços adicionais que podem ser integrados ao seu aplicativo. Explore a plataforma e tire o máximo proveito dos recursos disponíveis para garantir a melhor experiência para seus usuários e clientes.

Sempre que precisar pode-me contactar no Linkedin e, caso esteja procurando novos projetos, espreitar os que a Dellent tem disponíveis aqui.