Dominando Contêineres do Azure e App Service

Aprenda o que são contêineres e como implantar apps no Azure com analogias e cenários. Entenda de uma vez as diferenças entre ACR, ACI, Container Apps e App Service.

No exame AZ-104, contêineres e App Service são tópicos importantes que também são muito usados na prática profissional. A terminologia pode parecer estranha no início, mas com analogias do cotidiano, você vai achar muito mais fácil de entender do que imagina.

 

O Que É um Contêiner?

Vamos começar entendendo o conceito de contêiner.

Um contêiner é como uma caixa de mudança que você usa quando se muda de casa. Na mudança, você embala móveis, roupas e utensílios de cozinha em caixas separadas, e quando chega na nova casa, basta abrir as caixas e tudo está pronto para usar. Com apps é a mesma coisa. Quando você empacota um app junto com todas as bibliotecas e arquivos de configuração que ele precisa em uma única imagem de contêiner, ele roda exatamente igual em qualquer servidor. O problema de "funcionou na minha máquina..." simplesmente desaparece.

O Azure oferece vários serviços para trabalhar com contêineres. Vamos ver para qual situação cada um é indicado.

---

 

Azure Container Registry (ACR)

O Que É o ACR?

O ACR é o seu próprio depósito privado para armazenar imagens de contêiner.

Pense no depósito de um e-commerce. Quando os produtos são fabricados, ficam armazenados no depósito, e quando chega um pedido, são retirados e enviados. O ACR funciona exatamente assim. Quando a equipe de desenvolvimento cria um app como imagem de contêiner, armazena no ACR e retira para implantar nos servidores quando necessário.

Por que você precisa do seu próprio depósito? Se você enviar imagens para um registro público como o Docker Hub, qualquer pessoa pode vê-las. Apps internos da empresa ou imagens com requisitos de segurança não devem ficar expostos externamente. Como o ACR é um registro privado, apenas usuários autorizados podem acessar as imagens.

Comparação de SKUs do ACR

| Nível | Características | Ideal Para | |-------|----------------|------------| | Basic | Armazenamento pequeno, funcionalidades básicas | Ambientes de dev/teste | | Standard | Maior capacidade, suporte a webhooks | Produção geral | | Premium | Replicação geográfica, endpoints privados | Grandes empresas |

O recurso de replicação geográfica do nível Premium coloca cópias das imagens em múltiplas regiões do Azure. Servidores na Coreia e servidores nos Estados Unidos podem obter imagens rapidamente a partir do local mais próximo.

Controle de Acesso ao ACR (RBAC)

Um depósito tem funções, e o ACR também tem.

AcrPull: Permissão para baixar (ler) imagens. Normalmente concedida aos servidores de implantação. AcrPush: Permissão para enviar (gravar) imagens. Concedida a pipelines de CI/CD ou desenvolvedores. AcrDelete: Permissão para excluir imagens. É melhor conceder apenas a administradores.

Dica para o exame: "Preciso armazenar imagens Docker de forma privada" → pense no ACR.

---

 

Azure Container Instances (ACI)

O Que É o ACI?

O ACI é a forma mais rápida e simples de executar um contêiner.

Pense em um serviço de motoboy. Se você só precisa transportar algo ocasionalmente, seria um desperdício comprar um caminhão ou alugar um depósito. Você simplesmente chama um motoboy. O ACI funciona da mesma forma. Use-o quando quiser executar um único contêiner imediatamente, sem configurações de servidor complexas nem gerenciamento de cluster.

Quando Usar o ACI?

Trabalhos em lote: Uma tarefa que processa dados toda madrugada às 2h. Não há necessidade de mantê-la rodando em outros horários — basta iniciar o contêiner quando precisar e pará-lo ao terminar. Processamento baseado em eventos: Casos em que você precisa executar algo brevemente quando um evento específico ocorre, como converter uma imagem quando um arquivo é enviado. Testes rápidos: Quando você quer testar rapidamente uma nova imagem de contêiner.

Vantagens e Limitações do ACI

Com o ACI, você pode especificar CPU e memória diretamente e usar apenas o quanto precisar. No entanto, é mais adequado para tarefas pontuais ou de curta duração do que para serviços web que funcionam continuamente. Para arquiteturas de microsserviços que exigem conexões complexas entre múltiplos contêineres, os serviços apresentados abaixo são uma opção melhor.

Dica para o exame: "Executar um único contêiner o mais rápido possível" ou "Executar um contêiner sem gerenciamento de cluster" → pense no ACI.

---

 

Azure Container Apps

O Que É o Container Apps?

O Container Apps é uma plataforma de contêineres serverless. É ideal para gerenciar apps complexos onde múltiplos contêineres estão interconectados e funcionam juntos, como em microsserviços.

Imagine um restaurante de franquia. A cozinha, o salão e o caixa operam de forma independente, mas colaboram entre si. No horário de almoço, quando há mais clientes, mais funcionários são adicionados à cozinha; em horários tranquilos, são reduzidos. O Container Apps desempenha exatamente esse papel. Ele executa cada microsserviço (cozinha, salão, caixa) como um contêiner e ajusta automaticamente a escala de acordo com o tráfego.

Escalonamento Automático Baseado em KEDA

O KEDA (Kubernetes Event-Driven Autoscaling) observa vários sinais e ajusta automaticamente o número de contêineres.

Por exemplo, quando as requisições HTTP aumentam, mais contêineres são criados; quando mensagens se acumulam em uma fila de mensagens, contêineres adicionais são iniciados para processá-las. Quando não há tráfego, os contêineres podem ser reduzidos a zero para economizar custos. É isso que "serverless" significa — não que não existam servidores, mas que você não precisa se preocupar com eles.

Gerenciamento de Revisões (Implantações Blue/Green e Canary)

Se você muda 100% do tráfego para uma nova versão de uma vez, todos os usuários são afetados caso algo dê errado. O Container Apps lida com isso de forma segura.

Implantação Blue/Green: A versão antiga (Blue) e a nova versão (Green) rodam simultaneamente, e depois todo o tráfego é transferido de uma vez após a verificação. Implantação Canary: Inicialmente, apenas 5% do tráfego é enviado para a nova versão, e esse percentual aumenta gradualmente se não houver problemas. Assim como um canário detecta gás em uma mina antes dos mineiros, essa abordagem testa com um pequeno número de usuários antes do lançamento completo.

Integração com Dapr

O Dapr é uma ferramenta que facilita a comunicação entre microsserviços. Ele fornece uma forma padronizada para o Serviço A enviar mensagens ao Serviço B, ou para armazenar e ler estados compartilhados, sem precisar escrever código complexo de sistemas distribuídos.

Dica para o exame: "Contêineres serverless", "escalonamento com KEDA", "microsserviços" → pense no Container Apps.

---

 

Azure App Service

O Que É o App Service?

O App Service é um PaaS (Platform as a Service) que facilita a hospedagem de apps web, REST APIs e backends móveis.

Pense em um apartamento para alugar. Você não precisa construir o apartamento — quando você se muda, a eletricidade, a água e o aquecimento já estão prontos. O App Service funciona da mesma forma. Sem se preocupar com a infraestrutura, como instalação do sistema operacional do servidor, patches de segurança ou balanceamento de carga, você pode colocar um serviço web no ar simplesmente fazendo o upload do seu código. Suporta uma ampla variedade de linguagens, incluindo Node.js, Python, .NET, Java e PHP.

App Service Plan

Um App Service Plan é um plano de preços que define os recursos de computação (CPU, memória) nos quais seu app é executado. Usando a analogia do apartamento, é como escolher entre um kitnet, um apartamento de um quarto ou um duplex.

| Nível | Características | Ideal Para | |-------|----------------|------------| | Free/Shared | Ambiente gratuito ou compartilhado, sem domínio personalizado | Desenvolvimento e aprendizado | | Basic | Apps pequenos, sem escalonamento automático | Produção em pequena escala | | Standard | Escalonamento automático + slots de implantação | Produção geral | | Premium | Alto desempenho, integração com VNet | Alto tráfego ou necessidades de isolamento de rede | | Isolated (ASE) | Ambiente dedicado isolado, App Service Environment | Casos que exigem isolamento completo, como finanças ou saúde |

O ponto importante é que o escalonamento automático e os slots de implantação só estão disponíveis no nível Standard ou superior. Esse é um assunto que aparece com frequência no exame.

Slots de Implantação (Deployment Slots)

Os slots de implantação permitem criar um ambiente de staging ao lado do seu app de produção.

Pense na cozinha de um restaurante. Ao mudar o cardápio, testar diretamente na cozinha em operação afetaria os clientes. Em vez disso, você finaliza o novo cardápio em uma cozinha de testes separada e, se estiver tudo bem, o substitui pelo cardápio atual.

Os slots de implantação funcionam exatamente da mesma forma. Implante a nova versão no slot de staging. Teste exaustivamente no staging. Se estiver tudo bem, faça o swap (troca) entre os slots de staging e produção. A nova versão é implantada sem interrupção do serviço. Se surgir um problema, faça o swap novamente para reverter imediatamente.

Voltar à lista do blog