Introdução

Bom, como eu expliquei no Guia de introdução ao Azure, o serviço de aplicativo consiste na hospedagem de aplicativos web, móveis, API e lógicos.

Confira abaixo uma análise detalhada sobre cada um deles:

  • Aplicativos Móveis: De acordo com a Microsoft, o serviços de aplicativos do Azure é uma oferta de plataforma como serviço (PaaS), isto é, a Microsoft fornece uma plataforma para o desenvolvimento e hospedagem do seu aplicativo.  Utilizando este recurso, você tem a possibilidade de desenvolver aplicativos para dispositivos de diferentes plataformas, incluindo iOS, Android, Windows ou Mac. Quer um exemplo de aplicativo que você poderia hospedar no Azure? Então aí vai!

Imagine que você precise desenvolver um aplicativo que realize consultas diretamente em um banco de dados, hospedado no Azure, e o resultado é apresentado para o usuário final de forma “amigável”.

Tudo isso, claro, após autenticação prévia com o Azure Active Directory.

Parece ser um aplicativo extremamente simples, e é, sem dúvidas, porém, você acaba de garantir a segurança na autenticação e também praticidade na consulta destas informações.

     Eu citei esse exemplo envolvendo o Azure Active Directory e uma base de dados, pois os dois compõem a gama de recursos fornecidos pela Microsoft que auxiliam o desenvolvedor na hora de implementar um aplicativo.

  • Aplicativos Web: Um aplicativo web, assim como o nome sugere, consiste na implementação de sites ou aplicativos web no Azure. Fazendo uso desse recurso, você pode utilizar diferentes linguagens de programação, incluindo PHP, Java, ASP.NET, etc., sem falar na integração com GitHub, Visual Studio e por aí vai.  Um recurso bastante interessante é o provisionamento de slots de implantação, com ele você pode provisionar um ou mais ambientes de testes, também conhecido por staging, que pode ser um clone do seu ambiente de produção. O Azure também oferece diversas soluções para todo tipo de negócio, incluindo suporte a diferentes frameworks, por exemplo, WordPress e Joomla. É isso mesmo, é possível instalar o WordPress no Azure e consequentemente fazer uso dessa plataforma. Da uma olhada na imagem abaixo 😉

  • Aplicativos da API: Os aplicativos da API no serviço de Aplicativo de Azure, nos possibilitam implementar APIs na nuvem com segurança, garantindo um controle de acesso baseado no Azure Active Directory além de oferecer a possibilidade de migrar sua API existente sem a necessidade de alterar seu código. Assim como os aplicativos web e móveis, também oferece uma variedade de linguagens de programação (C#, Java, JavaScript, etc.).
  • Aplicativos Lógicos: Particularmente, prefiro chamar esse recurso de “facilitador”. Porque? Basicamente porque ele oferece uma maneira simples de implementar  qualquer tipo de integração.

Mas o que são essas integrações? Simples! É a troca de informações entre ambientes distintos, por exemplo:

– Processar dados e solicitações entre ambientes on-premise e na nuvem;

– Mover arquivos de um servidor on-premise para o armazenamento do Azure.

Não fique triste, mas eu vou ter que te contar que a única diferença entre os aplicativos web, móveis e API é o nome e o ícone usado para eles no Portal do Azure.

Dimensionando Aplicativos

Dimensionar um recurso, seja aplicativo, banco de dados, VMs, nem sempre é uma tarefa fácil, ainda mais quando não se sabe exatamente o consumo de tais recursos. Sem dúvida essa é uma tarefa complexa, que não possui uma solução aplicável para todas as situações, mas eu vou tentar te ajudar a entender algumas coisas que irão contribuir para o dimensionamento do seu aplicativo.

O Azure atualmente utiliza dois conceitos para dimensionamento, escalar verticalmente e escalar horizontalmente.

  • Escalar verticalmente: consiste na definição de recursos que serão utilizados para executar o aplicativo, isto é, CPU, memória, armazenamento, slots de implantação (área de staging, produção, etc.), certificados e assim por diante. Em outras palavras, aqui você define o preço.
  • Escalar horizontalmente: aqui você define a quantidade de instâncias (VMs) que irão executar o seu aplicativo. A quantidade de instâncias disponíveis vai depender do tipo de preço escolhido. A camada de preços Standard, por exemplo, suporta até 10 instâncias com a possibilidade de dimensionamento automático com base em regras pré definidas.

Além de definir a quantidade de recursos necessários, também deve-se pensar na arquitetura do aplicativo e entender os requisitos de desempenho esperado.

Mas como eu faço isso?
Pode começar respondendo as seguintes perguntas:

  • Os acessos ao seu aplicativo são oriundos de um único local geográfico ou é global?

Se o acesso até o aplicativo for realizado de diferentes regiões geográficas, você pode utilizar o CDN do Azure. O CDN basicamente vai armazenar o conteúdo estático em cache, em regiões estratégicas, garantindo desempenho e melhorando a experiência para o usuário.

  • Qual é a latência esperada para o seu aplicativo? 1 segundo? 1 milissegundo?

Imagine que você possui um aplicativo extremamente crítico para o negócio da sua empresa, cujo qual, está sendo executado em diferentes datacenters espalhados pelo mundo. Um dos seus desafios é garantir um tempo de resposta extremamente baixo. Que solução nós podemos utilizar para resolver esse problema?

Gerenciador de Tráfego (Traffic Manager)! O Azure possui um recurso denominado Gerenciador de Tráfego, que faz uso do DNS para direcionar o cliente para o ponto mais próximo, com base em um método de roteamento definido por você e também com base na integridade dos pontos de extremidade (neste caso, aplicativos).

Atualmente existem 4 métodos de roteamentos disponíveis no Gerenciador de Tráfego, um deles é o roteamento de tráfego por desempenho, que encaminha o tráfego para a localização mais próxima do usuário final e consequentemente aquela com menor latência.

Planos para o serviço de aplicativo do Microsoft Azure.

Conforme eu comentei no tópico anterior, o Azure utiliza dois conceitos para dimensionar um aplicativo, escalar verticalmente e horizontalmente, e isso tudo está atrelado aos planos de serviço de aplicativos do Azure.

Um plano de serviço define a localização, os recursos físicos, o custo e os recursos associados ao seu aplicativo (SSL, certificados, etc.).

Todo e qualquer tipo de aplicativo pode ser executado dentro do mesmo plano de serviço, compartilhando os recursos e consequentemente economizando dinheiro.

Os SKUs disponíveis para os planos de serviço de aplicativo são divididos em 5 categorias, Premium, Standard, Basic, Compartilhado e Gratuito. A camada compartilhada e gratuita não oferecem a possibilidade de controlar o tamanho (CPU, memória, espaço de armazenamento) e nem a opção de aumentar o número de instâncias (VMs), diferente das demais camadas, que possuem 3 diferentes tipos de preço com características (recursos) diferentes.

É importante ressaltar que, ao utilizar a camada de preços gratuita ou compartilhada, você está limitado a uma cota de uso dos recursos.

Veja abaixo as cotas aplicadas para aplicativos Gratuitos ou Compartilhados:

  • CPU (curto): quantidade de CPU permitida para o aplicativo no intervalo de três minutos, essa cota é redefinida a cada três minutos;
  • CPU (dia): quantidade de CPU permitida para o aplicativo no periodo de um dia. Cota redefinida a cada 24 horas;
  • Memória: quantidade total de memória permitida;
  • Largura de Banda: quantidade total do tráfego de saída. Cota redefinida a cada 24 horas;
  • Armazenamento: quantidade total de armazenamento permitido.

O que acontece se eu exceder essas cotas?

Se o aplicativo exceder a cota de CPU (curto), CPU (dia) ou largura de banda, toda e qualquer solicitação de acesso ao aplicativo irá retornar error HTTP 403.

Se a cota de memória for atingida, o aplicativo será reiniciado.

Caso a cota de armazenamento venha a exceder, todas as operações irão falhar, incluindo o armazenamento de logs e transações.

Como monitorar essas cotas?

Através de métricas! o Serviço de aplicativo do Azure oferece a possibilidade de configurar métricas com base no consumo de CPU, tempo de CPU, memória, saída de dados, etc.

Tempo de CPU? Sim, a cota de CPU para os aplicativos hospedados no plano Gratuito ou Compartilhado é com base no tempo de CPU.

Veja abaixo algumas métricas criadas com base em um aplicativo hospedado na camada de preço compartilhada.

Conclusão

O objetivo desse artigo foi fornecer uma visão geral dos principais recursos disponíveis no serviço de aplicativo do Azure.

Espero que eu tenha te ajudado a entender alguns conceitos em relação ao serviço de aplicativo.

Ficou interessado em saber mais sobre o assunto?
Então da uma olhada na documentação oficial.