Implementação de Soluções de Contêineres

Resumo do gerenciamento de imagens no ACR, execução no ACI, dimensionamento no Container Apps e escrita de Dockerfile.

O exame AZ-204 sempre inclui servicos de conteineres. Voce precisa distinguir claramente entre tres servicos — ACR, ACI e Container Apps — e entender os conceitos basicos de Dockerfile.

 

O que e um conteiner?

Imagine uma caixa de mudanca. Quando voce embala, coloca os itens, o enchimento e as instrucoes juntos. Independentemente de para onde voce envie essa caixa, o conteudo permanece exatamente igual. Os conteineres funcionam da mesma forma: empacotam o codigo da aplicacao, as bibliotecas necessarias e os arquivos de configuracao em um unico pacote para que a aplicacao rode de forma identica em qualquer computador.

| Conceito | Descricao resumida | |---------|------------------| | Imagem (Image) | Um projeto para criar um conteiner. Um arquivo imutavel. | | Conteiner (Container) | Uma imagem em execucao. Um processo ativo. | | Registro (Registry) | Um armazem para guardar e compartilhar imagens. |

 

ACR (Azure Container Registry)

ACR e um armazem privado para guardar imagens Docker. Se o Docker Hub e um armazem publico, o ACR e um armazem privado acessivel apenas dentro da sua organizacao. Em ambientes corporativos onde a seguranca e critica, voce nao pode expor imagens ao publico, tornando um registro privado essencial.

Principais funcionalidades do ACR

Armazenamento privado de imagens: Guarde imagens internas com seguranca sem exposta-las ACR Tasks: Compila imagens automaticamente quando o codigo muda, habilitando integracao CI/CD. Os desenvolvedores nao precisam executar comandos de compilacao manualmente. Replicacao geografica (Geo-Replication): Armazena copias de imagens em multiplas regioes do mundo para downloads rapidos de qualquer lugar. Disponivel apenas no nivel Premium. Integracao RBAC: Gerencie permissoes de acesso a imagens por funcao (Contributor, Reader, etc.) Identidade gerenciada (Managed Identity): Autenticacao segura entre servicos Azure sem senhas

| Nivel | Caracteristicas | |-------|----------------| | Basic | Desenvolvimento/testes, baixa capacidade de armazenamento | | Standard | Producao geral, suporte a webhooks | | Premium | Replicacao geografica, link privado, confianca de conteudo |

 

ACI (Azure Container Instances)

O ACI permite executar conteineres o mais rapido possivel sem configurar um cluster ou servidores. Como abrir um pacote e usa-lo imediatamente, voce executa conteineres instantaneamente sem nenhuma configuracao de infraestrutura.

E ideal para cargas de trabalho simples onde orquestradores complexos como Kubernetes nao sao necessarios. Comumente usado para trabalhos em lote de uma unica vez ou tarefas de curta duracao.

Principais funcionalidades do ACI

Sem cluster necessario: Execute um conteiner com um unico comando, sem configuracao do Kubernetes Grupos de conteineres (Container Groups): Agrupa varios conteineres em uma unidade logica. Usado para o padrao sidecar (app principal + coletor de logs, etc.). Apenas Linux. Injecao de variaveis de ambiente: Injeta valores de configuracao na inicializacao do conteiner. Mude configuracoes sem modificar o codigo. Montagem de volume: Monte o Azure Files para que os conteineres armazenem dados persistentes Politica de reinicializacao: Always (sempre), OnFailure (apenas na falha), Never (nunca)

| Item | Descricao | |------|-----------| | Velocidade de inicializacao | Executa em segundos — o metodo de execucao de conteineres mais rapido no Azure | | Faturamento | Baseado em tempo de execucao (por segundo) e uso de memoria | | Casos de uso | Trabalhos em lote de uma unica vez, testes rapidos, tarefas de pipeline CI/CD |

 

Container Apps

O Container Apps e uma plataforma gerenciada e sem servidor para executar conteineres. Permite usar os poderosos recursos do Kubernetes (escalonamento automatico, divisao de trafego, etc.) sem gerenciar o Kubernetes diretamente. Pense em uma cafeteria que automaticamente chama mais baristas quando esta cheia e nao tem ninguem quando esta vazia (escalar para zero).

Principais funcionalidades do Container Apps

Sem servidor: Nao e necessario gerenciar um cluster Kubernetes diretamente. O Azure gerencia a infraestrutura automaticamente. Escalonamento automatico com KEDA: Escala instancias automaticamente com base em eventos como contagem de solicitacoes HTTP ou comprimento da fila de mensagens Escalar para zero (Scale to Zero): Quando nao ha solicitacoes, as instancias em execucao caem para zero. Muito eficaz para economizar custos. Revisoes (Revisions): Instantaneos imutaveis do seu app. Ao implantar uma nova versao, voce pode dividir o trafego entre a versao antiga e a nova (ex: 20% nova, 80% antiga) para uma transicao gradual. Integracao com Dapr: Simplifica a comunicacao entre servicos, gerenciamento de estado e pub/sub de mensagens entre microsservicos

| Comparacao | ACI | Container Apps | |------------|-----|----------------| | Gerenciamento de cluster | Nao necessario | Nao necessario | | Escalonamento automatico | Nao disponivel | Disponivel (KEDA) | | Escalar para zero | Nao disponivel | Disponivel | | Caso de uso | Tarefas de uma unica vez | Servicos de longa duracao |

!ACR vs ACI vs Container Apps

Dockerfile e Build Multi-Etapa

Um Dockerfile e uma receita escrita passo a passo que descreve como construir uma imagem. Como uma receita culinaria, ele diz: "Comece com este ingrediente (imagem base), execute estes passos em ordem e produza o resultado final."

Build Multi-Etapa (Multi-Stage Build)

Essa tecnica separa a etapa de compilacao (compilar codigo) da etapa de execucao (executar o app). E como separar a linha de producao da linha de embalagem em uma fabrica. As ferramentas de compilacao nao sao incluidas na imagem final, tornando-a muito menor.

Etapa de compilacao: Compilar codigo fonte, incluir ferramentas de compilacao Etapa de execucao: Copiar apenas o resultado compilado, excluir ferramentas de compilacao Resultado: Tamanho da imagem final significativamente menor, menos vulnerabilidades de seguranca

 

Pontos-chave do exame

"Armazenamento privado de imagens Docker" -- ACR (Azure Container Registry)

"Compilar imagens automaticamente quando o codigo muda" -- ACR Tasks

"Distribuicao global rapida com replicacao geografica" -- Nivel Premium do ACR

"Execucao de conteiner mais rapida sem cluster" -- ACI (Azure Container Instances)

"App principal e app auxiliar como uma unidade" -- Grupo de conteineres (padrao sidecar)

"Plataforma de conteiner sem servidor com escalonamento KEDA" -- Container Apps

"Zero instancias quando nao ha solicitacoes" -- Container Apps Scale to Zero

"Dividir trafego entre versoes nova e antiga" -- Revisoes do Container Apps

"Comunicacao entre microsservicos e gerenciamento de estado" -- Dapr (integracao Container Apps)

"Reduzir tamanho da imagem separando etapas de compilacao e execucao" -- Build multi-etapa (Dockerfile)

"Autenticar entre servicos Azure sem senha" -- Identidade gerenciada (Managed Identity)

Voltar à lista do blog