Estratégias de arquitetura para monitorizar a fiabilidade da carga de trabalho

Aplica-se a esta recomendação da lista de verificação de Fiabilidade do Azure Well-Architected Framework:

RE:10 Meça e acompanhe continuamente a saúde do sistema utilizando indicadores de tempo de atividade e fiabilidade entre componentes e fluxos críticos. Garantir que estes dados são mantidos e acessíveis para apoiar a deteção, resposta e análise pós-incidente atempadas.

A monitorização da fiabilidade é a prática de medir quão bem um sistema cumpre os seus requisitos de negócio ao longo do tempo, no que diz respeito à resiliência e à recuperabilidade. Um sistema de monitorização bem estruturado fornece uma visão em tempo real e tendências do comportamento do sistema, estabelecendo visibilidade entre as camadas de plataforma, infraestrutura e carga de trabalho.

Ao correlacionar estes sinais entre componentes e ao longo do tempo, a monitorização permite uma análise rápida e confiante de incidentes e interrupções. Crie uma abordagem estruturada para que os insights sejam significativos, os alertas impulsionem as ações corretas e os aprendizados retroalimentem a arquitetura e as operações.

As principais estratégias-chave deste artigo baseiam-se na prática operacional fundamental da observabilidade, descrita em OE:07 Estratégias de arquitetura para o design de um sistema de monitorização. Orientações sobre a implementação da prática de monitorização estão disponíveis no Guia de Design de Monitorização. Recomendamos que revejas esses recursos primeiro.

Definições

Term Definition
SLA (acordo de nível de serviço) Compromissos externos que recebe dos fornecedores, ou que faz aos seus clientes. Não cumprir os SLAs pode levar a penalizações financeiras, danos reputacionais ou degradação da experiência do utilizador.
SLO (objetivos de nível de serviço) Metas internas de desempenho e fiabilidade usadas para definir limiares que acionam alertas e medem a saúde do sistema em função dos objetivos de negócio.
Modelo de saúde Uma representação hierárquica da condição do sistema usando estados claros de saúde (saudável, degradado, não saudável) com sinais em tempo real e capacidade de aprofundamento do sistema global para componentes individuais.
Carimbo Uma unidade de implementação com limites de capacidade definidos, como o máximo de utilizadores concorrentes, taxa de transferência ou limiares de utilização de recursos. Múltiplos selos permitem distribuição em escala e regional.
FMA (análise de modos de falha) Uma análise sistemática para identificar potenciais pontos de falha num sistema, utilizada para orientar a estratégia de monitorização e melhorias de fiabilidade.
RTO (objetivo de tempo de recuperação) O tempo máximo aceitável para detetar, responder e recuperar de uma falha ou incidente.
RPO (objetivo do ponto de recuperação) A quantidade máxima aceitável de perda de dados medida no tempo, representando a quantidade de dados que pode ser perdida durante um cenário de falha.
Transações sintéticas Testes automatizados que simulam ações reais do utilizador e interações de ponta a ponta para validar a saúde do sistema e detetar problemas da perspetiva do cliente, fornecendo validação externa da disponibilidade do sistema.
IDs de correlação Identificadores únicos usados para rastrear transações e pedidos em múltiplos serviços e componentes, permitindo a identificação e análise de problemas em sistemas distribuídos.
Falhas transitórias Falhas temporárias em dependências do sistema que normalmente se resolvem num curto período de tempo, como timeouts de rede ou indisponibilidade temporária de serviços.
Latência da cauda O tempo de resposta experienciado pelos pedidos mais lentos, normalmente medido em percentis altos (p95, p99), onde os problemas de desempenho surgem frequentemente primeiro.

Funcionalidade de monitorização da carga de trabalho

Monitoriza o que o teu sistema realmente entrega. Comece por acompanhar se os fluxos de trabalho críticos são concluídos com sucesso e produzem resultados válidos. Um sistema pode parecer saudável enquanto continua a produzir resultados incorretos ou incompletos, por isso a execução sozinha não é suficiente.

Por exemplo, se uma carga de trabalho gera relatórios a cada seis horas, a monitorização deve confirmar duas coisas: que o trabalho foi executado conforme planeado e que produziu um resultado válido, como um relatório não vazio com conteúdo e dimensão esperados. Este tipo de validação ajuda a garantir que o sistema não só está a executar, mas também a entregar funcionalidades para as quais foi concebido.

Monitorizar a experiência do utilizador

Monitorizar a fiabilidade do ponto de vista empresarial e do utilizador. Como parte da sua análise de modos de falha (FMA), já deve ter identificado fluxos de utilizadores-chave. Para cada fluxo, acompanhe como falhas em qualquer componente ou dependência afetam a experiência do utilizador e qual é o resultado esperado. Por exemplo, num fluxo de checkout de comércio eletrónico, uma interrupção do serviço ou sobrecarga nos sistemas de pagamento ou inventário pode impedir os clientes de concluírem as compras.

A fiabilidade também reflete a qualidade do serviço. Num fluxo de checkout, os utilizadores devem conseguir concluir as compras de ponta a ponta sem interrupções. Use métricas de latência baseadas em percentis, como p50, p95 e p99, para compreender a experiência real do utilizador, com especial atenção à latência de cauda, onde os problemas de desempenho surgem frequentemente primeiro.

Importante

A monitorização de desempenho oferece uma visão de como o seu sistema se comporta sob carga real, ao decompor a latência de ponta a ponta entre camadas do sistema. Liga as mudanças de desempenho para que possas perceber o que influenciou uma mudança de comportamento. Isso pode dever-se a implementações, atualizações de configuração e eventos de escalabilidade. Em conjunto, a monitorização da fiabilidade e do desempenho fornecem uma visão completa do comportamento do sistema e destacam onde a atenção focada terá maior impacto. Para informações sobre monitorização de desempenho, consulte Monitorizar Desempenho.

Monitorização de metas de disponibilidade

Acompanhe como o seu sistema cumpre as metas definidas de disponibilidade, largura de banda e tempos de resposta. Estas metas são frequentemente formalizadas como acordos de nível de serviço (SLAs) e objetivos de nível de serviço (SLOs) e refletem as expectativas que estabeleceu para os seus utilizadores. A monitorização contra eles mantém a fiabilidade alinhada com os resultados reais do negócio. Para mais informações, consulte Metas de Fiabilidade e Acordos de Nível de Serviço.

Foque-se nos indicadores-chave que contribuem para esses objetivos e acompanhe-os ao longo do tempo. Quando algo deriva, deve ser possível analisar em detalhe os componentes ou subsistemas envolvidos. Capture todos os sinais relevantes, incluindo problemas mascarados por redundância ou failover, para que possa compreender o que realmente aconteceu e evitar ocorrências repetidas.

Combine a consciência em tempo real com o contexto histórico. Os sinais em tempo real ajudam-no a responder rapidamente quando os alvos estão em risco, enquanto as tendências ao longo do tempo revelam padrões e problemas recorrentes. Classificar as causas das falhas de alvo e agregar estas métricas também apoia relatórios claros de SLA e ajuda a orientar melhorias contínuas.

Monitorize os principais SLAs fornecidos pelos seus fornecedores e pelos serviços da plataforma (da Microsoft e outros). Deves:

  • Acompanhar indicadores de potenciais violações do SLA em tempo real
  • Recolher e reter as provas necessárias para apoiar uma reclamação de SLA caso ocorra uma violação

Objetivos de recuperabilidade a acompanhar

Acompanhe a recuperabilidade tratando cada teste e incidente real como um evento mensurável. Use os dados de monitorização para validar que o seu sistema e equipa conseguem cumprir os objetivos definidos de recuperação em condições reais.

Mede sinais-chave como o tempo para detetar, responder e recuperar (RTO), juntamente com a exposição à perda de dados (RPO). Inclua indicadores como prontidão e capacidade de failover, taxas de sucesso e tempo de execução, sucesso de backup e restauração, atraso de replicação e quanta intervenção manual é necessária.

Estas métricas também destacam lacunas operacionais, como procedimentos pouco claros, atrasos na decisão ou documentação de difícil acesso, que podem afetar o desempenho da recuperação. Utilize estes conhecimentos para reforçar tanto o design do sistema como as práticas de resposta a incidentes.

Note

Tem cuidado para que as políticas de limpeza ou retenção não sejam tão agressivas ao ponto de apagarem registos ou telemetria precisamente quando mais precisas. Para cada cenário, pergunte: Que dados precisaríamos para entender o que aconteceu antes e durante o incidente? Uma abordagem útil é pensar antecipadamente em diferentes tipos de investigações pós-incidente, tais como:

  • Interrupções de plataformas ou infraestruturas
  • Problemas de disponibilidade de aplicações (por exemplo, após uma implementação ou alteração de configuração)
  • Bugs de aplicação que causam perda ou corrupção de dados
  • Incidentes de segurança

Tornar os alertas acionáveis com um modelo de saúde

Projetar alertas para que apontem claramente para algo que valha a pena agir, e fundamentá-los num modelo de saúde que represente o sistema usando estados simples como saudável, degradado e doente.

Estrutura o modelo de saúde hierarquicamente, desde componentes individuais até ao sistema completo, para que possas rapidamente rastrear os problemas até à sua origem. Defina limiares usando objetivos de nível de serviço (SLOs) e combine sinais como métricas, registos, rastreios e verificações sintéticas para criar uma imagem fiável da saúde do sistema. Isto dá aos operadores uma visão clara do que está a funcionar, do que não está e onde agir sem precisar de vasculhar dados brutos. Para mais informações, consulte o guia de design sobre modelação em saúde.

Ajuste os alertas para condições reais, focando-se na experiência de ponta a ponta e nas transações críticas, para que reflitam o impacto real no utilizador. Reduza o ruído ao considerar as flutuações transitórias e ao ativar com base em mudanças significativas no estado de saúde, em vez de blips ou picos isolados. Combine alertas em tempo real com insights de tendências para detetar tanto problemas imediatos como degradação gradual, ajudando as equipas a responder rapidamente e a manter o foco.

Risco: A modelação da saúde requer a recolha de sinais significativos em todo o sistema. Confiar apenas em métricas simples como CPU ou memória pode perder o que realmente importa. Inclua dados de experiência do utilizador e verificações sintéticas para obter uma visão completa. Definir "saudável" exige alinhamento, e limiares mal ajustados podem criar ruído e reduzir a eficácia.

Monitorizar todas as camadas do sistema

Monitorize cada camada do sistema, aplicação, dados/armazenamento e rede, para manter uma visão completa dos sinais de fiabilidade.

Na camada da aplicação, acompanhe o sucesso, o fracasso e a latência usando logs, métricas e sondas de saúde. Use IDs de correlação para acompanhar pedidos entre serviços e facilitar a resolução de problemas. Recolha os registos de forma assíncrona para que não afetem o desempenho dos pedidos, e mantenha os registos de diagnóstico e auditoria separados para maior clareza. Adicione transações sintéticas e sondas de endpoint para confirmar o que os clientes realmente experienciam.

Compromisso. Escolher entre registo assíncrono e síncrono envolve um equilíbrio entre desempenho e fiabilidade da telemetria.

  • O logging assíncrono mantém o registo fora da trajetória crítica, reduzindo a latência e melhorando o desempenho do sistema. No entanto, introduz um risco de perda de telemetria, especialmente se ocorrer uma falha antes de os registos serem esvaziados ou persistidos.

  • O registo síncrono garante que os registos são escritos antes de o processamento continuar, o que melhora a durabilidade e a auditabilidade dos dados. A desvantagem é o aumento da latência e um acoplamento mais estreito entre o desempenho da aplicação e o sistema de registo de logs.

Na maioria dos cenários, o registo assíncrono é a abordagem preferida devido ao seu impacto mínimo no desempenho. No entanto, em ambientes fortemente regulados ou sensíveis à auditoria, pode ser necessário registo síncrono para garantir que os eventos críticos são capturados de forma fiável...

Na camada de dados e armazenamento, foque-se na disponibilidade, taxas de sucesso de escrita, latência de consulta, timeouts, bloqueios e pressão de recursos. Observe as tendências ao longo do tempo para identificar gargalos crescentes e distinguir problemas de curta duração de degradação sustentada.

Na camada de rede, monitorize a conectividade, latência, perda de pacotes, largura de banda e padrões de tráfego. Combine registos de fluxo, verificações de endpoints e testes sintéticos para resolver problemas de encaminhamento, anomalias ou comportamentos relacionados com a segurança. Ligue estes sinais de volta aos dados da aplicação e da plataforma para compreender de onde os problemas se originam.

Os registos operacionais ajudam a diagnosticar problemas, acompanhar o desempenho e compreender o comportamento do sistema. Não foram concebidos para servir como fonte de verdade em eventos empresariais, auditorias ou relatórios regulatórios, que normalmente exigem uma rastreabilidade mais rigorosa.

O que monitorizar em detalhe para cada camada está abordado no Guia de Design de Monitorização.

Definir e monitorizar a capacidade de estampagem

Defina limites claros de capacidade para cada unidade de implantação, ou carimbe, e monitore-os de perto. Cada selo opera dentro de um teto finito, seja o número máximo de utilizadores concorrentes, a largura de banda ou os limiares de utilização de recursos. Por isso, tornar esses limites explícitos vai dar-te uma base fiável para a tomada de decisões.

Esta visibilidade ajuda-o a identificar quando um carimbo está perto da saturação, muito antes de afetar a fiabilidade. Também suporta decisões de escalonamento atempadas, como adicionar novos selos ou redistribuir carga, e confirma que o tráfego está a fluir conforme o seu design.

Definir estes limites nem sempre é simples. A capacidade pode ser difícil de medir, especialmente quando depende de múltiplos serviços subjacentes com diferentes características de escalabilidade. Deves usar orientações de plataforma, como quotas e limites do Microsoft Azure, como ponto de partida. Na prática, a capacidade é frequentemente determinada através de testes de carga, observação e afinação iterativa, em vez de modelação precisa inicial.

Monitorizar a distribuição de carga entre instâncias redundantes

Quando executa a carga de trabalho por várias instâncias redundantes, incluindo quando distribui instâncias por diferentes regiões ou zonas, o tráfego e o uso de recursos devem manter-se equilibrados entre essas instâncias.

Deves identificar desequilíbrios que frequentemente apontam para problemas de encaminhamento, problemas de configuração ou restrições de dependência. Assegura também que os alvos de failover têm capacidade suficiente para absorver tráfego quando necessário e confirma que os mecanismos de redundância se comportam como esperado tanto durante o funcionamento em regime estacionário como em cenários de falha.

Detetar modos de falha

Como parte do seu exercício de análise de modos de falha (FMA), deveria ter identificado os potenciais pontos de falha.

Na prática de monitorização da fiabilidade, mantenha-se uma vigilância contínua sobre esses pontos. Comece por focar em sinais mais simples, como falhas transitórias. Monitorize o comportamento de retentativas e as taxas de falhas transitórias para compreender como as suas dependências e serviços subjacentes se comportam em condições reais de operação. Estes sinais oferecem uma visão inicial da instabilidade emergente. Ajudam-no a perceber quando os padrões de tentativas de novo se desviam da norma esperada, a gerir a noção da saúde do sistema sob carga e a identificar quando uma dependência ou serviço externo começa a degradar-se antes que afete a experiência do utilizador.

Inclui também falhas de maior impacto, como falhas em zonas de disponibilidade que afetam um subconjunto da infraestrutura, falhas de serviço ou interrupções regionais que deixam toda uma região Azure offline. Até esteja atento a cenários de segurança como DDoS ou outras atividades maliciosas, má configuração de componentes e problemas de desempenho, pois cada um deles pode afetar a fiabilidade global da sua solução.

Para informações sobre FMA, consulte Estratégias de arquitetura para análise de modos de falha.

Esteja informado sobre o estado de fiabilidade da plataforma

É necessário uma visão clara da saúde da plataforma para gerir a fiabilidade de forma eficaz. Essa consciência ajuda-o a determinar rapidamente se um problema tem origem na sua carga de trabalho ou na plataforma cloud subjacente.

O Azure Service Health fornece visibilidade sobre o estado do Azure. Configure alertas no Service Health para receber notificações quando as condições da plataforma mudarem. Recebe atualizações sobre interrupções ativas que afetam os seus recursos, eventos de manutenção planeados que podem causar perturbações e degradações regionais ou específicas do serviço.

Facilitação de Serviços do Azure

  • Incorpore serviços de monitoramento e alerta da plataforma de nuvem, incluindo:

  • O Azure Monitor é uma solução de monitoramento abrangente usada para coletar, analisar e responder a dados de monitoramento de seus ambientes locais e na nuvem.

  • O Log Analytics é uma ferramenta no portal do Azure usada para editar e executar consultas de log em relação aos dados no espaço de trabalho do Log Analytics.

  • Application Insights é uma extensão de Azure Monitor. Ele fornece recursos de monitoramento de desempenho de aplicativos (APM).

  • As informações do Azure Monitor são ferramentas de análise avançadas que ajudam a monitorar os serviços do Azure, como máquinas virtuais, serviços de aplicativos e contêineres. As informações são criadas com base no Azure Monitor e no Log Analytics.

  • O Azure Monitor for SAP solutions é um produto de monitoramento nativo do Azure para cenários SAP executados no Azure.

  • O Monitor de Ligação é uma ferramenta para monitorizar continuamente a conectividade e o desempenho da rede nos recursos do Azure. Ele executa testes sintéticos e fornece alertas e diagnósticos em tempo real para detetar falhas antecipadamente. Você pode criar pastas de trabalho personalizadas para visualizar a integridade da conectividade e métricas de desempenho agregadas.

  • Os registos de fluxo de rede virtual podem ser ativados em cargas de trabalho para monitorizar o tráfego de rede. A análise de tráfego pode ser usada para analisar e enriquecer esses logs de fluxo para revelar informações como tráfego bloqueado, fluxos mal-intencionados e portas ativas expostas à Internet. A criação de pastas de trabalho permite que as equipes monitorem o comportamento do tráfego ao vivo e recebam alertas. Use exibições de linha do tempo e visualizações de topologia para monitorar facilmente padrões de tráfego que possam indicar degradação do desempenho ou ameaças à segurança.

  • Para obter várias práticas recomendadas de espaço de trabalho, consulte Criar uma arquitetura de espaço de trabalho do Log Analytics.

Example

Para obter exemplos de soluções de monitoramento do mundo real, consulte Monitoramento de aplicativos Web no Azure e Arquitetura de linha de base para um cluster do Serviço Kubernetes do Azure.

Lista de verificação de fiabilidade

Consulte o conjunto completo de recomendações.