Compartilhar via


Práticas recomendadas de arquitetura para aplicativos de contêiner do Azure

Os Aplicativos de Contêiner do Azure são um serviço de contêiner totalmente gerenciado sem servidor que executa microsserviços e aplicativos em contêineres no Azure. Ele fornece dimensionamento automático interno, incluindo escala a zero, e dá suporte a várias linguagens e estruturas de programação. Os Aplicativos de Contêiner integram-se ao AKS (Serviço de Kubernetes do Azure) para monitoramento e rede avançados. Ele também fornece implantação e gerenciamento contínuos de aplicativos em contêineres sem a necessidade de gerenciar a infraestrutura subjacente. Ele dá suporte a aplicativos baseados em HTTP e baseados em eventos, portanto, é ideal para criar aplicativos modernos, escalonáveis e resilientes nativos de nuvem.

Este artigo pressupõe que, como arquiteto, você revisou a árvore de decisão de computação e escolheu Aplicativos de Contêiner como a plataforma de computação para sua carga de trabalho. As diretrizes neste artigo fornecem recomendações arquitetônicas que são mapeadas para os princípios dos pilares do Well-Architected Framework.

Importante

Como usar este guia

Cada seção tem uma lista de verificação de design que apresenta áreas arquitetônicas preocupantes, juntamente com estratégias de design localizadas no escopo da tecnologia.

Também estão incluídas recomendações para os recursos de tecnologia que podem ajudar a materializar essas estratégias. As recomendações não representam uma lista completa de todas as configurações disponíveis para Aplicativos de Contêiner e suas dependências. Em vez disso, eles listam as principais recomendações alinhadas às perspectivas de design. Use as recomendações para criar sua prova de conceito ou otimizar seus ambientes existentes.

Arquitetura fundamental que demonstra as principais recomendações: microsserviços com Aplicativos de Contêiner do Azure.

Escopo de tecnologia

Esta revisão se concentra nas decisões interrelacionadas para os seguintes recursos do Azure:

  • Aplicativos de contêiner

Diagrama que mostra a arquitetura dos Aplicativos de Contêiner.

Fiabilidade

A finalidade do pilar confiabilidade é fornecer funcionalidade contínua criando resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.

princípios de design de confiabilidade fornecem uma estratégia de design de alto nível aplicada a componentes individuais, fluxos do sistema e o sistema como um todo.

Lista de verificação de projeto

Inicie sua estratégia de design com base na lista de verificação de design para Confiabilidade. Determine sua relevância para seus requisitos de negócios, tendo em mente o desempenho e a confiabilidade de seus aplicativos. Estenda a estratégia para incluir mais abordagens conforme necessário.

  • Escolha as configurações de SKU apropriadas. Selecione um SKU de ambiente que se alinhe aos requisitos de desempenho e recursos de seus aplicativos de contêiner.

  • Crie redundância para melhorar a resiliência. Para aplicativos expostos por entrada (HTTP ou Protocolo TCP), use pelo menos três réplicas para ajudar a garantir a disponibilidade. Para minimizar as inicializações a frio, configure um número mínimo de réplicas sempre prontas.

    Use zonas de disponibilidade como parte de sua estratégia de resiliência para aumentar a disponibilidade ao implantar em uma única região. Muitas regiões do Azure fornecem zonas de disponibilidade. As zonas são posicionadas perto o suficiente para garantir conexões de baixa latência entre elas, mas distantes o suficiente para minimizar o risco de interrupções locais que afetam várias zonas.

    Para cargas de trabalho críticas, implante ambientes de Aplicativos de Contêiner em várias regiões e use o Azure Front Door ou o Gerenciador de Tráfego do Azure para gerenciamento de tráfego. Esses serviços ajudam a garantir alta disponibilidade e continuidade dos negócios. Se ocorrer uma interrupção regional, você poderá redirecionar automaticamente o tráfego para uma região secundária para minimizar o tempo de inatividade e a perda de dados.

  • Implementar o dimensionamento automático horizontal. Configure o dimensionamento automático usando regras de escala baseadas em solicitações HTTP, conexões TCP ou métricas personalizadas, como limites de CPU e memória. Você pode definir métricas personalizadas no Barramento de Serviço do Azure, nos Hubs de Eventos do Azure, no Apache Kafka e no Cache do Azure para Redis. Use o dimensionamento automático para gerenciar cargas dinamicamente e manter alta disponibilidade durante os horários de pico de uso.

    Verifique se seus aplicativos de contêiner ainda podem atender a solicitações dentro de seu SLO (objetivo de nível de serviço) sob alta carga.

  • Monitore a confiabilidade e os indicadores gerais de integridade do aplicativo de contêiner. Colete logs e métricas para monitorar a integridade, identificar tendências de desempenho e confiabilidade e solucionar problemas. Para obter mais informações sobre como projetar a solução de confiabilidade e monitoramento de integridade para sua carga de trabalho, consulte a modelagem de integridade para cargas de trabalho.

    Implementar ferramentas e alertas de monitoramento. Ative ferramentas de monitoramento, como o Azure Monitor e o OpenTelemetry. Configure alertas para detectar e responder prontamente a eventos que afetam a confiabilidade.

    Configurar as investigações de integridade. Configure sondas de inicialização, prontidão e vivacidade para todos os serviços para monitorar e manter a saúde do aplicativo.

  • Configure mecanismos de autorrecuperação para reiniciar automaticamente instâncias de contêiner não íntegras. As reinicializações automáticas aumentam a confiabilidade e a disponibilidade de seus aplicativos. Elas ajudam a assegurar a recuperação rápida de falhas sem a intervenção manual. Use as investigações de integridade para detectar contêineres com falhas e configurar políticas de resiliência para lidar automaticamente com as tentativas de repetição e interrupções.

Recomendações

Recomendação Benefício
Habilite o suporte à zona de disponibilidade dos Aplicativos de Contêiner para distribuir automaticamente réplicas entre as zonas em uma região. O tráfego tem balanceamento de carga entre as réplicas. Se ocorrer uma falha de zona, o tráfego será roteado automaticamente para as réplicas nas zonas restantes.
Definir cotas e limites de recursos. Evite a contenção de recursos para ajudar a garantir uma alocação justa e evitar a degradação do desempenho. Use o monitoramento ao longo do tempo para observar o uso real de recursos e ajustar cotas e limites adequadamente.
Use as montagens de volume para armazenar os dados fora do contêiner em aplicativos com estado. Para maior resiliência de dados, use o ZRS (armazenamento com redundância de zona) do Azure para ajudar a garantir a alta disponibilidade e durabilidade de seus dados. Verifique a persistência e a integridade dos dados em reinicializações e falhas do contêiner. Use a opção ZRS para proteger contra perda de dados devido a falhas zonais, o que fornece uma solução robusta para os aplicativos críticos com estado.
Implemente as investigações de integridade de inicialização, preparação e atividade para seus aplicativos de contêiner.

As investigações de atividade detectam e reiniciam os contêineres que estão em um estado de falha.
Configurações recomendadas: failureThreshold: 3, , periodSeconds: 10, timeoutSeconds: 5e successThreshold: 1initialDelaySeconds: 10

As sondas de prontidão garantem que apenas contêineres saudáveis recebam tráfego.
Configurações recomendadas: failureThreshold: 60, , periodSeconds: 1, timeoutSeconds: 1e successThreshold: 1initialDelaySeconds: 5

As sondas de inicialização impedem reinicializações prematuras, permitindo que aplicativos lentos sejam inicializados corretamente.
Configurações recomendadas: failureThreshold: 60, , periodSeconds: 1, timeoutSeconds: 1e successThreshold: 1initialDelaySeconds: 0
A configuração de sondagem adequada ajuda a garantir que os container apps funcionem de forma eficiente e possam lidar com o tráfego. Configurações inadequadas da sonda podem levar a reinicializações ou interrupções não intencionais.
Use os recursos de observabilidade internos dos Aplicativos de Contêiner, como streaming de log, console de contêiner e métricas e alertas do Azure Monitor, para garantir o monitoramento proativo e a depuração eficiente. Os Aplicativos de Contêiner oferecem suporte profundo à observabilidade, incluindo a integração com o painel do .NET Aspire e as métricas java. Essas ferramentas permitem insights aprimorados para os principais ecossistemas. Você também pode usar o coletor OpenTelemetry para rastreamento distribuído abrangente e coleta de métricas. Esses recursos melhoram a confiabilidade do aplicativo porque você pode identificar e resolver problemas rapidamente.
Implemente políticas de resiliência de descoberta de serviço, como repetições, tempos limite e disjuntores, para prevenir, detectar e recuperar proativamente de falhas de solicitação de serviço. Aprimore a confiabilidade de seus aplicativos de contêiner, garantindo uma comunicação entre serviços mais suave e resiliente.
Implemente o dimensionamento automático horizontal usando regras de escala baseadas em solicitações HTTP, conexões TCP ou métricas personalizadas, como limites de CPU e memória. Você pode definir métricas personalizadas no Barramento de Serviço, Hubs de Eventos, Apache Kafka e Cache do Azure para Redis. A carga de trabalho pode gerenciar cargas dinamicamente e manter alta disponibilidade durante os horários de pico de uso.

Segurança

O objetivo do pilar Segurança é fornecer garantias de confidencialidade, integridade e disponibilidade para a carga de trabalho.

Os princípios de design de segurança fornecem uma estratégia de design de alto nível para atingir essas metas aplicando abordagens ao design técnico dos Aplicativos de Contêiner.

Lista de verificação de projeto

Inicie sua estratégia de design com base na lista de verificação de revisão de design para Segurança e identifique vulnerabilidades e controles para melhorar a postura de segurança. Estenda a estratégia para incluir mais abordagens conforme necessário.

  • Revisar as linhas de base de segurança. Para aprimorar o perfil de segurança da carga de trabalho, examine a linha de base de segurança dos Aplicativos de Contêiner.

  • Integre-se ao Microsoft Entra ID para gerenciamento de identidade e acesso. Use o controle de acesso baseado em função (RBAC) com o Microsoft Entra ID para o acesso de privilégio mínimo.

    Use identidades gerenciadas com a ID do Microsoft Entra para acesso seguro e sem credenciais aos recursos do Azure.

  • Implementar controles de segmentação e de rede. Implante ambientes de aplicativos de contêiner privado e use o modo de entrada interno para isolamento da Internet pública.

    Controlar o tráfego de saída. Para evitar a exfiltração de dados, integre seu ambiente de aplicativos de contêiner a uma rede virtual personalizada que tenha rotas definidas pelo usuário para ajudar a proteger o tráfego de saída.

  • Mantenha a cadeia de fornecimento de software de uma carga de trabalho reforçada. Implemente a verificação com reconhecimento de contêiner em seus pipelines de CI/CD (integração contínua e entrega contínua) seguras. Esse recurso detecta vulnerabilidades e ajuda a garantir a integridade de suas imagens de contêiner. Para obter mais informações, consulte Containers Secure Supply Chain.

    Reduza a superfície de ataque. Proteja imagens de contêiner e remova componentes não utilizados. Use imagens base mínimas e enxutas, como as imagens do Alpine e do Chiselled Ubuntu.

    Integre-se ao Microsoft Defender. Use o Microsoft Defender para Contêineres para verificar imagens no Registro de Contêiner do Azure.

  • Criptografe dados em repouso e em trânsito. Use métodos modernos padrão do setor para proteger a confidencialidade e a integridade.

    Usar o Azure Key Vault. Armazene valores e segredos de configuração confidenciais no Key Vault para protegê-los contra acesso não autorizado.

    Habilitar mTLS (segurança de camada de transporte mútua). Use o mTLS para autenticar e criptografar o tráfego entre serviços. Esse recurso verifica ambas as partes, o que aprimora a segurança.

    Imponha o HTTPS. Configurar o proxy Envoy para redirecionar todo tráfego HTTP para HTTPS. A configuração padrão do Envoy é allowInsecure: false.

  • Implementar uma estratégia de monitoramento de segurança. Capture os logs detalhados para fins de monitoramento e auditoria. Envie os logs de sistema e console para um espaço de trabalho do Log Analytics, Hubs de Eventos ou uma solução que não seja da Microsoft, para fins de monitoramento e auditoria. Remova dados confidenciais de registros. Os logs de console são originados dos fluxos stderr e stdout no aplicativo.

Recomendações

Recomendação Benefício
Use identidades gerenciadas para acessar os recursos protegidos do Microsoft Entra ID. Atribua uma identidade gerenciada ao seu aplicativo de contêiner para acessar recursos do Microsoft Entra ID protegidos do Azure, como uma conta de armazenamento ou cofre de chaves, sem precisar usar chaves ou senhas. Centralize o gerenciamento de identidades e elimine a necessidade de gerenciamento manual de credenciais. Simplifique o acesso seguro aos recursos do Azure.
Implante aplicativos de contêiner em uma rede privada para integrá-los a uma rede virtual existente. Use recursos como conectividade de aplicativo privado, anexo do NSG (grupo de segurança de rede) e comunicação de recursos por meio de um endereço IP privado. Forneça isolamento da Internet pública e habilite a comunicação segura entre aplicativos de contêiner e outros recursos de rede.
Use o Key Vault para gerenciar certificados e segredos do aplicativo com segurança aprimorada. O Key Vault mantém certificados e outros segredos do aplicativo separados da configuração do aplicativo. Ele também fornece um log de auditoria de acesso que detalha quando certificados e segredos são atualizados, recuperados e renovados. Ajude a proteger informações confidenciais, garantir a conformidade e dar suporte ao gerenciamento seguro de segredos usando recursos de registro em log e rotação de certificados.
Use o Gateway de Aplicativo do Azure com o Firewall de Aplicativo Web habilitado para ajudar a proteger o tráfego HTTP e HTTPS ao publicar seu aplicativo de contêiner por meio de um proxy reverso. O Firewall do Aplicativo Web verifica o tráfego HTTP de entrada em busca de possíveis ataques do OWASP (Open Web Application Security Project). Aprimore a segurança protegendo-se contra vulnerabilidades comuns da Web e fornecendo gerenciamento de tráfego centralizado.
Autentique com a ID do Microsoft Entra no Registro de Contêiner para evitar o uso de credenciais administrativas. Você pode controlar o acesso por meio do RBAC. Habilite o controle de acesso granular por meio do RBAC para o gerenciamento de imagens de contêiner, o que ajuda a garantir a autenticação segura e sem credenciais.
Use as regras NSG para ajudar a proteger o tráfego que acessa o ponto de extremidade de aplicativos de contêiner interno. As regras NSG fornecem um controle mais granular de quais redes virtuais podem se comunicar com seus aplicativos de contêiner. Aprimore a segurança de rede restringindo o acesso apenas a redes confiáveis, o que minimiza superfícies de ataque.
Controle o tráfego de saída usando rotas de rede definidas pelo usuário. Controlar como seus contêineres se comunicam com recursos fora do ambiente de contêiner. Você pode rotear o tráfego para o Firewall do Azure, o Gateway nat do Azure ou um dispositivo que não seja da Microsoft. Verifique o fluxo de tráfego de saída controlado e seguro, que dá suporte a políticas avançadas de roteamento e inspeção.
Configure as opções de log para enviar os logs para um espaço de trabalho do Log Analytics, Hubs de Eventos ou uma solução que não seja da Microsoft. Dê suporte a monitoramento centralizado, diagnóstico e auditoria, garantindo a conformidade com políticas confidenciais de tratamento de dados.

Otimização de custos

A otimização de custos se concentra na na detecção de padrões de gastos, na priorização de investimentos em áreas críticas e na otimização de outras para atender ao orçamento da organização e, ao mesmo tempo, aos requisitos comerciais.

Os princípios de design de Otimização de Custos fornecem uma estratégia de design de alto nível para atingir essas metas e fazer compensações conforme necessário no design técnico relacionado aos Aplicativos de Contêiner e seu ambiente.

Lista de verificação de projeto

Comece sua estratégia de design com base na lista de verificação de revisão de design para otimização de custos em investimentos. Ajuste o design para que a carga de trabalho seja alinhada com o orçamento alocado para a carga de trabalho. Seu design deve usar os recursos corretos do Azure, monitorar investimentos e encontrar oportunidades para otimizar ao longo do tempo.

  • Selecione os planos de preços apropriados. Escolha os planos de preços mais econômicos para seus aplicativos de contêiner com base nos requisitos de carga de trabalho e nos padrões de uso esperados.

    Aproveite o plano de economia do Azure para computação , comprometendo-se com uma taxa fixa por hora por um ou três anos. Use um plano de poupança para economizar até 17% em comparação com os preços pagos conforme o uso. Otimize seu orçamento e reduza as despesas gerais para cargas de trabalho previsíveis de longo prazo.

  • Otimize os custos dos componentes da carga de trabalho. Examine e ajuste regularmente as alocações de CPU e memória para atender às necessidades de seus aplicativos. Essa prática impede o provisionamento excessivo e minimiza os custos.

    Use as camadas de disco gerenciadas. Ao usar montagens de volume, selecione as camadas e tamanhos de disco gerenciado apropriados para otimizar os custos de armazenamento para dados persistentes. Pague apenas pelo que precisar.

    Use imagens de contêiner simplificadas e otimizadas para melhorar os tempos de inicialização e a eficiência dos recursos, o que reduz os custos de armazenamento e de rede.

  • Otimize os custos de dimensionamento. Configure políticas de dimensionamento automático para reduzir automaticamente os recursos durante períodos de baixa demanda e escalar verticalmente durante os horários de pico. Essa prática garante o uso eficiente de recursos.

  • Otimize os custos de rede. Otimize os caminhos de rede para minimizar os custos de transferência de dados, especialmente para aplicativos que têm volumes de largura de banda altos.

  • Use ferramentas de gerenciamento de custos. Use as ferramentas de Gerenciamento de Custos da Microsoft para acompanhar e analisar gastos, definir orçamentos, criar alertas de custo e implementar marcação consistente entre recursos.

    Essas ferramentas fornecem visibilidade detalhada dos gastos na nuvem, ajudam a identificar oportunidades de economia de custos, garantir a adesão às restrições orçamentárias e permitir o acompanhamento granular e o relatório de custos associados a cargas de trabalho, aplicativos e ambientes específicos.

Recomendações

Recomendação Benefício
Examine e ajuste regularmente a CPU, as alocações de memória e outras métricas para se alinhar às necessidades reais de seus aplicativos. Evite o excesso de provisionamento e reduza os custos desnecessários, garantindo que os recursos sejam dimensionados corretamente para as cargas de trabalho.
Implemente regras de dimensionamento automático de escala para zero para aplicativos que não precisam ser executados continuamente. Elimine os custos durante períodos de inatividade, o que garante que você pague apenas pelos recursos quando precisar deles. Essa abordagem reduz significativamente as despesas para aplicativos que têm padrões de uso variáveis ou pouco frequentes.
Escolha as camadas de disco gerenciadas apropriadas para aplicativos com estado. Baseie sua seleção nas necessidades de capacidade e desempenho de armazenamento e considere o uso de discos reservados para cargas de trabalho previsíveis. Verifique se você paga apenas pelo desempenho de armazenamento necessário, o que impede o excesso de custos do armazenamento superprovisionado. Discos reservados podem oferecer uma economia significativa nos custos para as necessidades de armazenamento a longo prazo, oferecendo descontos em comparação com os preços de pagamento conforme o uso.

Excelência operacional

A Excelência Operacional concentra-se principalmente em procedimentos relacionados às práticas de desenvolvimento , observabilidade e gerenciamento de lançamentos.

Os princípios de design da Excelência Operacional fornecem uma estratégia de design de alto nível para atingir essas metas para os requisitos operacionais da carga de trabalho.

Lista de verificação de projeto

Inicie sua estratégia de design com base na lista de verificação de revisão de design da Excelência Operacional para definir processos de observabilidade, teste e implantação relacionados aos Aplicativos de Contêiner.

  • Implemente uma abordagem de implantação de IaC (infraestrutura como código). Implemente implantações baseadas em modelo usando ferramentas como Bicep ou Terraform. Verifique se todas as implantações são repetíveis, rastreáveis e armazenadas em um repositório de código-fonte.

  • Automatizar implantações de infraestrutura e carga de trabalho. Use soluções de software padrão para gerenciar, integrar e automatizar a implantação de suas cargas de trabalho.

    Configure os pipelines de implantação para reimplantar o ambiente em outra região se ocorrer uma interrupção regional. Essa abordagem ajuda você a restaurar e reimplantar rapidamente dados críticos e configurações em outra região, o que aprimora os recursos de recuperação de desastre e minimiza o tempo de inatividade durante falhas regionais.

    Crie processos automatizados para configurar seus ambientes com as configurações e implantações necessárias usando pipelines de CI/CD.

  • Implementar uma estratégia de monitoramento abrangente. Defina as configurações de diagnóstico para capturar logs, métricas e dados de diagnóstico. Use ferramentas como o Azure Monitor e o Application Insights para acompanhar a integridade e o desempenho do aplicativo, identificar tendências de desempenho e confiabilidade e solucionar problemas.

    Emita a telemetria para as cargas de trabalho. Projete suas cargas de trabalho para emitir dados de telemetria, incluindo status de vivacidade e prontidão, para facilitar o monitoramento e a solução de problemas.

    Monitore as métricas de desempenho. Monitore continuamente as principais métricas de desempenho, como CPU, memória e uso de rede, para identificar oportunidades de otimização de custos e eficiência operacional.

  • Implemente a engenharia de caos. Aplique práticas de engenharia de caos usando ferramentas como o Azure Chaos Studio para identificar possíveis problemas de confiabilidade em seu ambiente de Aplicativos de Contêiner. Realize experimentos para garantir que seus aplicativos possam suportar falhas inesperadas. Realize testes de desempenho usando ferramentas como o Teste de Carga do Azure para garantir que as regras de dimensionamento funcionem conforme o esperado sem interrupções nos clientes.

  • Implemente a marcação de recursos consistente em todos os aplicativos de contêiner e outros recursos de carga de trabalho. A marcação consistente facilita o gerenciamento eficiente de recursos, o controle de custos e a automação.

  • Aplique a governança da carga de trabalho. O Azure Policy ajuda a garantir a conformidade consistente com os padrões organizacionais, automatiza a imposição de políticas e fornece visibilidade centralizada e controle sobre os recursos da carga de trabalho.

Recomendações

Recomendação Benefício
Armazene suas configurações de ambiente dos Aplicativos de Contêiner como IaC e configure os pipelines de implantação para reimplantar o ambiente em outra região se ocorrer uma interrupção regional. Verifique se você pode restaurar e reimplantar rapidamente dados críticos e configurações em outra região, o que aprimora os recursos de recuperação de desastres e minimiza o tempo de inatividade durante falhas regionais.
Use as revisões para implementar as implantações verde-azul ou implantações canárias.

As revisões exigem que você etiquete e versione adequadamente as imagens de contêiner. Você pode usar rótulos em revisões para facilitar o compartilhamento, por exemplo, para testes de aceitação do usuário ou visualizações limitadas.
Minimize o tempo de inatividade e reduza o risco durante os lançamentos, permitindo implementações seguras e reversões rápidas.
Configurar o Azure Monitor e o Application Insights. Acompanhe o desempenho e a integridade dos aplicativos de contêiner e forneça insights detalhados sobre o desempenho e a confiabilidade do aplicativo. Use esses insights para detectar e resolver problemas proativamente.

Eficiência de desempenho

Eficiência de desempenho significa manter a experiência do usuário mesmo quando há um aumento na carga por meio do gerenciamento da capacidade. A estratégia inclui dimensionamento de recursos, identificação e otimização de possíveis gargalos e otimização para o desempenho de pico.

Os princípios de design de eficiência de desempenho fornecem uma estratégia de design de alto nível para atingir essas metas de capacidade considerando o uso esperado.

Lista de verificação de projeto

Inicie sua estratégia de design com base na lista de verificação de revisão de design para Eficiência de Desempenho para definir uma linha de base com base nos principais indicadores de desempenho dos Aplicativos de Contêiner.

  • Desenvolva um plano de capacidade detalhado para garantir que seus aplicativos de contêiner tenham recursos suficientes para lidar com cargas variadas, evitando o excesso de provisionamento. Um plano de capacidade ajuda a otimizar o custo e o desempenho.

    Atualize regularmente seu plano para documentar as alocações de recursos corretas, as configurações de dimensionamento automático e as estratégias de failover para seus aplicativos de contêiner. Essa abordagem garante que você possa restaurar e reimplantar rapidamente dados críticos e configurações em outra região, o que aprimora os recursos de recuperação de desastre e minimiza o tempo de inatividade durante falhas regionais.

  • Habilite o dimensionamento automático. Configure políticas de dimensionamento automático para ajustar automaticamente o número de instâncias de contêiner com base na demanda em tempo real, o que garante o desempenho ideal durante os horários de pico e fora do pico.

  • Otimize a alocação de recursos. Monitore e ajuste continuamente as alocações de CPU e memória com base nas métricas de desempenho para garantir o uso eficiente de recursos e impedir o provisionamento excessivo.

  • Realizar testes de carga. Execute testes de carga regulares para avaliar o desempenho e a escalabilidade de seus aplicativos de contêiner em condições diferentes. O teste ajuda a garantir que os aplicativos de contêiner possam lidar com os níveis de tráfego esperados.

  • Cargas de trabalho separadas. Implante cargas de trabalho críticas e confidenciais em ambientes separados de Aplicativos de Contêiner para evitar problemas de vizinhos barulhentos. Distribua cargas de trabalho em vários ambientes para garantir que aplicativos críticos tenham recursos dedicados. Esse método também garante que as demandas de desempenho de aplicativos menos críticos não afetem aplicativos críticos.

Recomendações

Recomendação Benefício
Configure políticas de dimensionamento automático para ajustar automaticamente o número de instâncias de contêiner de acordo com as necessidades de recursos. Ajude a manter o desempenho do aplicativo e a eficiência do custo. Verifique se os recursos estão disponíveis quando necessário e conservados quando não forem necessários. Use o Teste de Carga do Azure para fazer experimentos de teste de carga e ajuste as políticas de dimensionamento automático conforme necessário.
Use a camada dedicada de perfis de carga de trabalho para aplicativos que exigem desempenho previsível e alocação de recursos garantida. Forneça recursos dedicados para aplicativos críticos, o que garante um desempenho consistente e reduz o risco de contenção de recursos.
Use métricas de dimensionamento personalizadas, como métricas baseadas em dados específicos do aplicativo, para conduzir decisões de dimensionamento automático. Verifique se as ações de dimensionamento são baseadas em demandas de carga de trabalho relevantes, o que melhora a eficiência e a capacidade de resposta dos aplicativos de contêiner.

Políticas do Azure

O Azure fornece um amplo conjunto de políticas internas relacionadas aos Aplicativos de Contêiner e suas dependências. Algumas das recomendações anteriores podem ser auditadas por meio do Azure Policy. Por exemplo, você pode verificar se:

  • As configurações de diagnóstico devem ser habilitadas: Habilite o registro em log por grupo de categorias para ambientes de Aplicativos de Contêiner (microsoft.app/managedenvironments) para enviar informações ao Armazenamento. Essa configuração garante que o Armazenamento colete consistentemente logs e métricas para monitoramento, solução de problemas e conformidade.

  • A autenticação para aplicativos de contêiner deve ser habilitada: Habilite a autenticação para impedir solicitações HTTP anônimas e autenticar solicitações por meio de tokens antes que elas cheguem a um ambiente de Aplicativos de Contêiner.

  • Os ambientes de Aplicativos de Contêiner devem usar a injeção de rede: Configure ambientes de Aplicativos de Contêiner com injeção de rede virtual para isolá-los da Internet pública, habilitar a integração de rede com recursos locais ou outras redes virtuais do Azure e obter controle granular sobre o tráfego de rede.

  • O acesso à rede pública deve estar desabilitado: Desabilite o acesso à rede pública para melhorar a segurança expondo o ambiente de Aplicativos de Contêiner por meio de um balanceador de carga interno. Essa abordagem bloqueia o acesso à Internet a todos os aplicativos de contêiner dentro do ambiente.

  • O acesso à rede externa deve ser desabilitado: Imponha a entrada somente interna para garantir que a comunicação de entrada para aplicativos de contêiner esteja limitada aos chamadores dentro do ambiente de Aplicativos de Contêiner.

  • O HTTPS deve ser imposto: Verifique se os aplicativos de contêiner só podem ser acessados por HTTPS para proteger os dados em trânsito contra ataques de escuta de camada de rede.

  • As identidades gerenciadas devem ser habilitadas: Exigir identidades gerenciadas para ambientes de Aplicativos de Contêiner para autenticar com segurança qualquer recurso que dê suporte à autenticação da ID do Microsoft Entra.

Para governança abrangente, examine as definições internas do Azure Policy para Aplicativos de Contêiner e outras políticas que podem afetar a segurança das redes.

Recomendações do Assistente do Azure

O Assistente do Azure é um consultor de nuvem personalizado que ajuda você a seguir as práticas recomendadas para otimizar suas implantações do Azure.

Para obter mais informações, confira Assistente do Azure.

Próximas etapas