Web App, App Service, Azure e Linux, será que conseguimos desenvolver uma solução com estas tecnologias?


Se você está acostumado a trabalhar com Docker e Linux é uma boa ideia avaliar e subir sua aplicação no Azure. Como incentivadora do Open Source, a Microsoft está cada vez mais se mobilizando para facilitar a implementação de soluções Linux no Azure.

Em setembro do ano passado, foi anunciada a disponibilidade do Azure App Service no Linux, permitindo que os desenvolvedores trouxessem seus códigos ou contêineres formatados no Docker para serem executados no Azure com o Linux.

Porém, já temos suporte a vários contêineres, suporte à Linux para App Service Environment (ASE) e diagnóstico, depuração, autenticação e autorização simplificados.

Ao longo dos anos, o Azure App Service ajudou os desenvolvedores a criar, implementar e dimensionar apps rapidamente sem precisar manter os servidores ou sistemas operacionais subjacentes. Com esses novos investimentos, agora suportamos mais padrões de aplicativos e opções de implantação.

Suporte para vários contêineres

Os Web Apps precisam de uma infraestrutura mínima, eles não vivem por si só. Normalmente têm um front end, precisam falar com APIs ou usar um serviço de armazenamento em cache. Para aumentar a portabilidade, o isolamento e a agilidade, você pode optar por contêineres em cada componente, e gerenciá-los como uma unidade integral. Usando o suporte a vários contêineres do App Service, agora é possível implantar Web Apps compostos de vários contêineres formatados no Docker em um único host de máquina virtual (VM).

Esse host da VM pode ser dimensionado horizontalmente, dinamicamente ou manualmente, ou dimensionado para um hardware mais potente, se necessário. Você pode operar esse composto como uma unidade atômica, aproveitando os poderosos recursos do App Service, como IC/CD interno, escalonamento automático e diagnósticos inteligentes, sem se preocupar com a orquestração de contêineres ou a infraestrutura de hospedagem.

Em um Web App de carrinho de compras, por exemplo, você pode compor um serviço de cache, uma API de pagamento de back-end, um serviço de monitoramento e um aplicativo de pedidos de front

 

end, cada um dos respectivos contêineres. Cada contêiner pode ser gerenciado separadamente seguindo o padrão de design “separação de interesses” e reutilizado por diferentes aplicativos ou equipes para acelerar o desenvolvimento, o que chamamos de microsserviços.

Além disso, o uso de hardware é otimizado com a composição de vários contêineres em uma única VM host. Com as APIs de back-end e o serviço de cache na mesma unidade, você pode reduzir a latência de processamento e o estado de persistência das informações do usuário sem precisar lidar com a descoberta de serviço. Recomendamos usar um banco de dados como um serviço (por exemplo, o Banco de Dados do Azure para MySQL) separadamente para que seus dados precisem otimizar escala e desempenho. Veja um exemplo da arquitetura de vários contêineres para o Web App do carrinho de compras.

Arquitetura do Docker Compose

A implementação de Web Apps de vários contêineres no Azure App Service é fácil. Basta descrever seu Web App com um arquivo do Docker Compose ou uma definição do Kubernetes Pod e carregar o arquivo de configuração ou copiar/colar uma URL apontando para o arquivo de configuração no portal do Azure. O App Service cuida de puxar seus contêineres de um registro, instanciá-los e configurar as comunicações entre eles.

um screenshot do docker compose

 

Suporte a Linux para o App Service Environment em pré-visualização pública

Com o Linux no App Service Environment, você pode implementar Web Apps em uma rede virtual do Azure (VNet), trazendo seu próprio contêiner ou código baseado em Linux. Os Web Apps Windows e Linux podem ser implementados em um único ASE, compartilhando a mesma rede virtual. Você pode optar por ter um ponto de extremidade acessível pela Internet, implantando o ASE com um endpoint externo ou um endereço privado em uma VNet, implantando o Web App em um ASE com um balanceador de carga interno. Os aplicativos implantados em um ASE estão disponíveis no plano Isolado, onde você pode dimensionar até 100 VMs Dv2 por ASE e fornecer isolamento de rede que atenda às suas necessidades de conformidade.

Diagnóstico aprimorado de App Services

No ano passado, apresentamos um recurso de diagnóstico do App Services, oferecendo uma experiência de solução de problemas inteligente guiada, que aponta você na direção certa para diagnosticar e resolver seus problemas de aplicativos.

Agora você pode aproveitar essa ferramenta não apenas para seus Web Apps do Windows, mas também para aplicativos no Linux, no App Services Environment e nas Azure Functions. Além de identificar problemas de plataforma e aplicativos, você pode obter insights em nível de código usando o Application Insights na experiência de diagnóstico do App Services.

Depuração, autenticação e autorização mais fáceis

Abaixo temos algumas inovações que facilitam ainda mais a criação e depuração de aplicativos no Azure.

 

  • Depuração remota, em pré-visualização pública: agora é possível optar por depurar remotamente seus aplicativos Node.JS executados no App Service no Linux usando o Visual Studio Code ou o Azure CLI para resolver problemas de uma forma mais rápida.
  • Suporte para o cliente SSH de sua escolha, em pré-visualização pública: Além do cliente SSH da web do Kudu, agora você pode usar o Putty ou qualquer outro cliente SSH do seu próprio console ou programa shell. Também é suportado o protocolo SFTP e assim, você pode usar o cliente SFTP de sua escolha.
  • Autenticação e autorização mais fáceis, na visualização pública do App Service Linux: os sites agora podem autorizar usuários e restringir o acesso ao conteúdo do site usando as identidades do Azure Active Directory, Facebook, Google, Twitter e Conta da Microsoft.

 

Acreditamos que esta é uma das soluções que a Microsoft propõe para tornar o uso da tecnologia mais democrática e lhe dar total liberdade de escolha na hora de desenvolver sua solução. E aí, o que mais você tem feito com Azure e Linux?

 

Artigo originalmente publicado em: https://azure.microsoft.com/en-us/blog/app-service-adding-multi-container-capabilities-and-linux-support-for-app-service-environment/


Autor: Microsoft Tech