Crie designs para operações

Concluído
Desloque para a esquerda nas operações para prever condições de falha.

Teste falhas com antecipação e frequentemente no ciclo de vida de desenvolvimento e determine o impacto do desempenho na confiabilidade. Para fins de análise de causa raiz e post-mortem, você precisa ter visibilidade compartilhada, entre equipes, de status de dependência e falhas contínuas. Insights, diagnósticos e alertas de sistemas observáveis são fundamentais para um gerenciamento eficaz de incidentes e melhoria contínua.

A Contoso University executa um aplicativo Web baseado em microsserviços que fornece serviços de educação, como aulas online, para professores e alunos da Contoso. A carga de trabalho é criada no Serviço de Aplicativo do Azure, no Banco de Dados SQL do Azure, no Microsoft Entra ID, no Azure Key Vault, no Barramento de Serviço do Azure, no Azure Monitor e no Azure DevOps.

Implementar um monitoramento robusto

Crie sistemas observáveis que possam correlacionar a telemetria.

Monitoramento e diagnóstico são operações cruciais. Se algo falhar, você precisa saber que falhou, quando falhou e por que falhou. A observabilidade no nível do componente é fundamental, mas a observabilidade agregada de componentes e fluxos correlacionados fornece uma visão holística do status de integridade. Esses dados são necessários para permitir que os engenheiros de confiabilidade do site priorizem seus esforços para correção.

Desafio da Contoso

  • O aplicativo de carga de trabalho é implantado como parte de um conjunto de cinco serviços desacoplados em várias camadas funcionais.
  • A equipe gostaria de poder analisar transações e solicitações de usuários à medida que atravessa as várias camadas da solução para identificar gargalos que podem levar à instabilidade e executar uma solução de problemas mais eficiente quando surgirem problemas.

Aplicando a abordagem e os resultados

  • A equipe de carga de trabalho instrumenta os componentes para capturar logs e métricas com o Application Insights e configura o registro em log para todos os serviços de plataforma. Todos os logs são encaminhados para o workspace do Azure Monitor da carga de trabalho.
  • Os dados no Workspace do AzM podem ser usados para analisar a integridade de componentes individuais da solução e fluxos agregados e integridade da solução.
  • Correlacionar entradas pertencentes à mesma solicitação entre componentes e camadas ajuda a equipe a determinar a integridade da carga de trabalho e facilita seus processos de solução de problemas.

Prever possíveis defeitos e comportamento anômalo

Torne as falhas de confiabilidade ativas visíveis usando alertas priorizados e acionáveis. Invista em processos e infraestrutura confiáveis, que levem a uma triagem mais rápida.

Os engenheiros de confiabilidade do site podem ser notificados imediatamente para que possam atenuar os incidentes contínuos do site ao vivo e reduzir proativamente possíveis falhas identificadas por alertas preditivos antes de se tornarem incidentes ao vivo.

Desafio da Contoso

  • A equipe espera um aumento significativo no tráfego no início de cada período, à medida que os alunos se registram para aulas, acessam syllabi e compram livros didáticos.
  • Durante esse período crítico do ano acadêmico, a equipe precisa garantir que haja capacidade suficiente disponível para o aumento da carga esperada. A equipe também precisa ser capaz de reagir rapidamente a outros possíveis problemas de disponibilidade que possam surgir.

Aplicando a abordagem e os resultados

  • A equipe configura as camadas Web e de banco de dados para escalar horizontalmente automaticamente para ter capacidade extra antes do aumento esperado na demanda e continuar a alocar capacidade à medida que a carga aumenta.
  • O plano de resposta a emergências é ajustado para determinar que os alertas relacionados aos fluxos sob estresse durante esse período sejam priorizados pela equipe de resposta a incidentes.

Testar se há riscos de confiabilidade

Simule falhas e execute testes em ambientes de produção e pré-produção.

É benéfico experimentar falhas na produção para poder definir expectativas realistas de recuperação. Isso permite que você faça escolhas de design que respondam normalmente a falhas. Além disso, permite testar os limites definidos para as métricas de negócios.

Desafio da Contoso

  • A comunicação entre a camada Web e o serviço REST de registro do aluno nessa carga de trabalho depende de certificados do cliente.
  • Como a funcionalidade de registro do aluno não é muito usada após o início do termo, se o certificado usado pelo serviço de registro do aluno expirar, o problema poderá permanecer indetectado por algum tempo.
  • Além disso, durante o último período de registro, houve várias interrupções no serviço devido ao sistema lidar incorretamente com falhas transitórias de conectividade. A equipe fez algumas melhorias de código para lidar com falhas transitórias, mas não tem certeza de como a funcionalidade se comportará em cenários reais de produção.

Aplicando a abordagem e os resultados

  • A equipe desenvolve testes de transações sintéticas que serão executados em produção em um cronograma mensal para simular vários fluxos, incluindo o fluxo de registro.
  • O alerta é configurado para os testes de transação sintética para que a equipe seja notificada se ocorrerem falhas, abrangendo o risco de expiração de certificados.
  • Além disso, a equipe investiu na criação de testes de caos em seu SDLC, realizando testes de caos rotineiros e capturando os resultados para validar técnicas de autopreservação e para ajudar a descobrir problemas de confiabilidade até então desconhecidos.

Verifique seu conhecimento

1.

Verdadeiro ou falso: um exemplo de como tornar uma carga de trabalho observável é instrumentar o aplicativo para emitir dados de telemetria.

2.

Qual é um atributo de uma estratégia de alerta bem projetada?

3.

Qual é uma maneira da Contoso provar que sua carga de trabalho pode operar em um estado degradado?