Partilhar via


Práticas recomendadas e considerações para instâncias de contêiner do Azure

As Instâncias de Contêiner do Azure (ACI) permitem que você empacote, implante e gerencie aplicativos em nuvem sem precisar gerenciar a infraestrutura subjacente. Os cenários comuns executados no ACI incluem cargas de trabalho intermitentes, automação de tarefas e trabalhos de compilação. Você pode usar o ACI definindo os recursos necessários por grupo de contêineres, incluindo vCPU e memória. O ACI é uma ótima solução para qualquer cenário que possa operar em contêiner isolado. O ACI oferece tempos de inicialização rápidos, segurança em nível de hipervisor, tamanhos de contêiner personalizados e muito mais. As informações a seguir ajudam a determinar se as Instâncias de Contêiner do Azure são melhores para o seu cenário.

O que considerar

As credenciais do usuário passadas por meio da interface de linha de comando (CLI) são armazenadas como texto sem formatação no back-end. O armazenamento de credenciais em texto simples é um risco de segurança; A Microsoft aconselha os clientes a armazenar credenciais de usuário em variáveis de ambiente da CLI para garantir que elas sejam criptografadas/transformadas quando armazenadas no back-end.

Existem limites por defeito que podem exigir aumentos de quotas. Para obter mais detalhes: Disponibilidade de recursos e limites de cota para ACI - Instâncias de Contêiner do Azure | Microsoft Learn

As imagens de contêiner não podem ser maiores que 15 GB, qualquer imagem acima desse tamanho pode causar um comportamento inesperado: Qual pode ser o tamanho da minha imagem de contêiner?

Se a imagem do contêiner for maior que 15 GB, você poderá montar um compartilhamento de arquivos do Azure para armazenar a imagem.

Se um grupo de contêineres for reiniciado, o IP do grupo de contêineres poderá ser alterado. Recomendamos que não use um endereço IP codificado no seu cenário. Se você precisar de um endereço IP público estático, use o Gateway de Aplicativo: Endereço IP estático para grupo de contêineres - Instâncias de Contêiner do Azure | Microsoft Learn. Se quiser garantir que seu grupo de contêineres seja acessível por meio de seu nome de domínio, mesmo que o grupo de contêineres seja recriado, você pode usar contêineres init: Implantar instâncias de contêiner do Azure com um contêiner de inicialização | Microsoft Learn.

Há portas reservadas para a funcionalidade do serviço. Recomendamos que você não use essas portas, porque seu uso leva a um comportamento inesperado: o serviço ACI reserva portas para a funcionalidade do serviço?.

Seus grupos de contêineres podem reiniciar devido a eventos de manutenção da plataforma. Esses eventos de manutenção são feitos para garantir a melhoria contínua da infraestrutura subjacente: o contêiner teve uma reinicialização isolada sem entrada explícita do usuário.

O ACI não permite operações privilegiadas de contêineres. Recomendamos que você não dependa do uso do diretório raiz para o seu cenário.

Melhores práticas

Recomendamos a execução de grupos de contêineres em várias regiões para que suas cargas de trabalho possam continuar a ser executadas se houver um problema em uma região.

Desaconselhamos o uso de um endereço IP codificado em seu cenário, uma vez que o endereço IP de um grupo de contêineres não é garantido. Para atenuar os problemas de conectividade, recomendamos configurar um gateway. Se o contêiner estiver atrás de um endereço IP público e você precisar de um endereço IP público estático, use o Application Gateway. Se o seu contêiner estiver atrás de uma rede virtual e você precisar de um endereço IP estático, recomendamos o uso do NAT Gateway.

Outras opções de Contêiner do Azure

Azure Container Apps

Os Aplicativos de Contêiner do Azure permitem que você crie microsserviços sem servidor com base em contêineres. Os Aplicativos de Contêiner do Azure não fornecem acesso direto às APIs subjacentes do Kubernetes. Se você precisar de acesso às APIs do Kubernetes e ao plano de controle, deverá usar o Serviço Kubernetes do Azure. No entanto, se você quiser criar aplicativos no estilo Kubernetes e não precisar de acesso direto a todas as APIs nativas do Kubernetes e gerenciamento de cluster, o Container Apps oferece uma experiência totalmente gerenciada com base nas práticas recomendadas. Por esses motivos, muitas equipes podem preferir começar a criar microsserviços de contêiner com os Aplicativos de Contêiner do Azure.

Serviço de Aplicações do Azure

O Serviço de Aplicativo do Azure fornece hospedagem totalmente gerenciada para aplicativos Web, incluindo sites e APIs Web. Esses aplicativos da Web podem ser implantados usando código ou contêineres. O Serviço de Aplicativo do Azure é otimizado para aplicativos Web. O Serviço de Aplicativo do Azure é integrado a outros serviços do Azure, incluindo Aplicativos de Contêiner do Azure ou Azure Functions. Se você planeja criar aplicativos Web, o Serviço de Aplicativo do Azure é uma opção ideal.

Azure Container Instances

As Instâncias de Contêiner do Azure (ACI) fornecem um único pod de contêineres isolados do Hyper-V sob demanda. Pode ser pensado como uma opção de "bloco de construção" de nível inferior em comparação com Container Apps. Conceitos como escala, balanceamento de carga e certificados não são fornecidos com contêineres ACI. Por exemplo, para dimensionar para cinco instâncias de contêiner, você cria cinco instâncias de contêiner distintas. Os Aplicativos de Contêiner do Azure fornecem muitos conceitos específicos do aplicativo sobre contêineres, incluindo certificados, revisões, escala e ambientes. Os usuários geralmente interagem com as Instâncias de Contêiner do Azure por meio de outros serviços. Por exemplo, o Serviço Kubernetes do Azure pode sobrepor a orquestração e a escala em camadas sobre o ACI por meio de nós virtuais. Se você precisar de um bloco de construção menos "opinativo" que não esteja alinhado com os cenários para os quais os Aplicativos de Contêiner do Azure estão otimizando, as Instâncias de Contêiner do Azure são uma opção ideal.

Azure Kubernetes Service

O Serviço Kubernetes do Azure (AKS) fornece uma opção Kubernetes totalmente gerenciada no Azure. Ele suporta acesso direto à API do Kubernetes e executa qualquer carga de trabalho do Kubernetes. O cluster completo reside na sua subscrição, com as configurações e operações do cluster sob o seu controlo e responsabilidade. Equipes que procuram uma versão totalmente gerenciada do Kubernetes no Azure, o Serviço Kubernetes do Azure é uma opção ideal.

Funções do Azure

O Azure Functions é uma solução de Funções como Serviço (FaaS) sem servidor. Ele é otimizado para executar aplicativos orientados a eventos usando o modelo de programação de funções. Ele compartilha muitas características com os Aplicativos de Contêiner do Azure em relação à escala e integração com eventos, mas otimizado para funções efêmeras implantadas como código ou contêineres. O modelo de programação do Azure Functions fornece benefícios de produtividade para equipes que procuram acionar a execução de suas funções em eventos e vincular a outras fontes de dados. Se você planeja criar funções no estilo FaaS, o Azure Functions é a opção ideal. O modelo de programação do Azure Functions está disponível como uma imagem de contêiner base, tornando-o portátil para outras plataformas de computação baseadas em contêiner, permitindo que as equipes reutilizem o código à medida que os requisitos do ambiente mudam.

Azure Spring Apps

O Azure Spring Apps é um serviço totalmente gerenciado para desenvolvedores do Spring. Se você quiser executar o Spring Boot, o Spring Cloud ou qualquer outro aplicativo Spring no Azure, o Azure Spring Apps é uma opção ideal. O serviço gerencia a infraestrutura dos aplicativos Spring para que os desenvolvedores possam se concentrar em seu código. O Azure Spring Apps fornece gerenciamento do ciclo de vida usando monitoramento e diagnóstico abrangentes, gerenciamento de configuração, descoberta de serviços, integração de CI/CD, implantações azul-verde e muito mais.

Azure Red Hat OpenShift

A Red Hat e a Microsoft projetam, operam e dão suporte ao Azure Red Hat OpenShift em conjunto para fornecer um produto integrado e uma experiência de suporte para executar o OpenShift com tecnologia Kubernetes. Com o Azure Red Hat OpenShift, as equipes podem escolher suas próprias soluções de registro, rede, armazenamento e CI/CD ou usar as soluções internas para gerenciamento automatizado de código-fonte, compilações de contêineres e aplicativos, implantações, dimensionamento, gerenciamento de integridade e muito mais do OpenShift. Se sua equipe ou organização estiver usando o OpenShift, o Azure Red Hat OpenShift é uma opção ideal.

Próximos passos

Saiba como implantar um grupo de contêineres de vários contêineres com um modelo do Azure Resource Manager: