Gerenciamento e operações para os Aplicativos de Contêiner do Azure - Landing Zone Accelerator
Analise os recursos e serviços dos Aplicativos de Contêiner do Azure disponíveis para ajudá-lo a projetar e manter seu aplicativo para integridade e estabilidade de longo prazo.
Entenda os limites dos aplicativos de contêiner.
Considere isolar cargas de trabalho no nível de rede, computação, monitor ou dados.
Entenda as maneiras de controlar o consumo de recursos por cargas de trabalho.
Use sondas de integridade para ajudar a relatar e se recuperar da deterioração da integridade do aplicativo.
Use o Dapr para estabelecer conexões seguras com serviços externos.
Use o registro em log e o monitoramento para fornecer informações sobre quaisquer problemas associados aos seus aplicativos.
Use alertas durante eventos críticos do aplicativo e do sistema para garantir que a equipe de operações possa tomar medidas rápidas em caso de falhas no aplicativo.
Defina uma estratégia de dimensionamento para garantir capacidade suficiente disponível para lidar com o tráfego para seu aplicativo, minimizando a capacidade não utilizada. Os gatilhos de dimensionamento incluem o uso de CPU ou memória, juntamente com qualquer dimensionador suportado pelo KEDA.
Familiarize-se com o Envoy, pois os Aplicativos de Contêiner do Azure o usam como um proxy de rede.
Esteja ciente dos requisitos de RTO (Recovery Time Objective, objetivo de tempo de recuperação) e RPO (Recovery Point Objective, objetivo de ponto de recuperação) relacionados à continuidade de negócios e à recuperação de desastres. Defina um contrato de nível de serviço (SLA) para sua infraestrutura e aplicativo. Saiba mais sobre o SLA para Aplicativos de Contêiner do Azure. Confira a seção Detalhes do SLA para obter informações sobre cálculos mensais de tempo de atividade.
Dependendo dos requisitos específicos para seu aplicativo, talvez seja necessário usar medidas de alta disponibilidade para garantir a operação contínua se houver problemas com a plataforma subjacente do Azure. No Azure, as várias zonas e regiões permitem que você crie soluções para alta disponibilidade:
As zonas de disponibilidade são construções de isolamento de falhas no design do datacenter do Azure. Cada zona tem sua própria energia, rede e resfriamento para minimizar a chance de interrupções se espalharem pelas zonas. Para usar as Zonas de Disponibilidade, cada recurso do Azure pode ser implantado em uma zona específica ("zonal") ou em todas as zonas ("zona redundante").
As soluções de várias regiões fornecem o mais alto nível de isolamento de falhas e a mais alta confiabilidade, mas geralmente são mais difíceis de implementar devido à maior latência entre as regiões geográficas. Essa latência pode causar atrasos na replicação de dados. Para obter mais informações sobre design de várias regiões, consulte a documentação de Missão Crítica do Azure.
Considere usar o Azure DevOps e o GitHub para fornecer maneiras automatizadas de gerenciar processos de desenvolvimento, criação e implantação.
Recomendações
Isolar por ambiente: crie ambientes de aplicativos de contêiner distintos para isolamento total de recursos. Evite usar revisões para criar aplicativos de contêiner específicos do locatário. Para obter mais informações, consulte Aplicativos de contêiner do Azure na solução multilocatário.
Usar limites para computar recursos: use contêineres CPU e limites de solicitações de recursos de memória para gerenciar os recursos de computação e memória em um ambiente. Os limites padrão do contêiner são 2 vCPU e 4 GiB para computação e memória, respectivamente.
Usar testes de integridade: adicione testes de integridade aos seus aplicativos de contêiner. Verifique se as revisões contêm
livenessProbe
,readinessProbe
estartupProbe
. Para obter mais informações, consulte Testes de integridade dos Aplicativos de Contêiner do Azure.Configurar testes de integridade corretamente: O teste de integridade é responsável por fazer chamadas para um ponto de extremidade e espera receber um código de status de êxito, normalmente no intervalo HTTP 2xx, quando o sistema estiver em um estado íntegro. É recomendável que esse ponto de extremidade execute verificações não apenas na integridade do sistema, mas também na integridade de componentes críticos downstream, como bancos de dados, armazenamento e serviços de mensagens. Para evitar uma cascata contínua de verificações de integridade, é importante implementar o cache das respostas de integridade downstream por um breve período.
Registrar extensivamente: crie consultas do Log Analytics para procurar avisos, erros e mensagens críticas.
Os logs do aplicativo são gerados por mensagens de saída (
stdout
/stderr
) do console de contêineres. Quando o Dapr está habilitado, a saída do console contém mensagens de sidecar do aplicativo e do Dapr. Revise o monitoramento de logs para obter mais detalhes sobre como consultar logs usando a análise de log.Os logs do sistema são gerados pelos Aplicativos de Contêiner do Azure.
Habilitar rastreamento visual: ao habilitar o Dapr, configure o 'DaprAIInstrumentationKey'' no nível do ambiente ACA para visualizar o rastreamento distribuído de aplicativos de contêiner no mapa de aplicativos do Azure Application Insights.
Use o SDK do Application Insights: O uso do SDK do Application Insights para dados de aplicativo como agente de instrumentação automática ainda não é suportado.
Usar zonas de disponibilidade: quando precisar de alta disponibilidade, use Zonas de Disponibilidade em todos os recursos. Certifique-se de que não apenas seus aplicativos de contêiner sejam redundantes de zona, mas também serviços adjacentes necessários para atender às solicitações, como bancos de dados, armazenamento e serviços de mensagens.
Usar replicação distribuída: para fins de recuperação de desastres (DR), verifique se os dados do aplicativo e o código-fonte estão disponíveis em mais de uma região do Azure. Por exemplo, as contas de Armazenamento do Azure permitem armazenamento replicado geograficamente e os Bancos de Dados SQL do Azure permitem que réplicas de leitura sejam colocadas em outras regiões.
Automatizar compilações: use a automação de ponta a ponta para criar e implantar seus aplicativos de Aplicativos de Contêiner do Azure.
Usar um registro de contêiner: armazene suas imagens de contêiner no Registro de Contêiner do Azure e replique geograficamente o Registro para cada região do ACA.
Teste seu plano de recuperação de desastres: crie e teste um plano de recuperação de desastres regularmente usando os principais cenários de falha. Para obter mais informações, consulte Testando backup e recuperação de desastres.