Design para operações

Concluído
Vire para a esquerda nas operações para antecipar as condições de falha.

Teste falhas no início e frequentemente no ciclo de vida do desenvolvimento e determine o impacto do desempenho na confiabilidade. Por uma questão de análise de causa raiz e postmortems, você precisa ter visibilidade compartilhada, entre as equipes, do status de dependência e falhas contínuas. Insights, diagnósticos e alertas de sistemas observáveis são fundamentais para o gerenciamento eficaz de incidentes e a melhoria contínua.

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

Implemente um monitoramento robusto

Construa sistemas observáveis que possam correlacionar a telemetria.

A monitorização e o diagnóstico são operações cruciais. Se algo falhar, você precisa saber que falhou, quando falhou e por que falhou. A observabilidade ao nível dos componentes é fundamental, mas a observabilidade agregada dos componentes e fluxos correlacionados fornece uma visão holística do estado de saúde. Esses dados são necessários para permitir que os engenheiros de confiabilidade do local priorizem seus esforços de remediação.

O desafio da Contoso

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

Aplicação da abordagem e dos resultados

  • A equipe de carga de trabalho instrumenta os componentes para capturar logs e métricas com o Application Insights e configura o log para todos os serviços da plataforma. Todos os logs são encaminhados para o espaço de trabalho do Azure Monitor da carga de trabalho.
  • Os dados no AzM Workspace podem ser usados para analisar a integridade de componentes individuais da solução e os fluxos agregados e a integridade da solução.
  • A correlação de 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 potenciais avarias e comportamentos anómalos

Torne visíveis as falhas de confiabilidade ativas 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 local podem ser notificados imediatamente para que possam mitigar incidentes contínuos no local ativo e mitigar proativamente possíveis falhas identificadas por alertas preditivos antes que se tornem incidentes ativos.

O desafio da Contoso

  • A equipa espera um aumento significativo do tráfego no início de cada período, à medida que os alunos se inscrevem nas aulas, acedem aos programas e adquirem manuais escolares.
  • Durante este período crítico do ano letivo, a equipe precisa garantir que a capacidade suficiente para o aumento da carga esperada esteja disponível. A equipe também precisa ser capaz de reagir rapidamente a outros possíveis problemas de disponibilidade que possam surgir.

Aplicação da abordagem e dos resultados

  • A equipe configura as camadas Web e Banco de Dados para expandir 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 ditar que os alertas relacionados com os fluxos sob stress durante este período sejam priorizados pela equipa de resposta a incidentes.

Teste de 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 que você possa definir expectativas realistas para a recuperação. Isso permite que você faça escolhas de design que respondem graciosamente a falhas. Além disso, ele permite que você teste os limites definidos para métricas de negócios.

O desafio da Contoso

  • A comunicação entre a camada da Web e o serviço REST de registro do aluno nessa carga de trabalho depende de certificados de cliente.
  • Como a funcionalidade de registro do aluno não é muito usada após o início do prazo, se o certificado usado pelo serviço de registro do aluno expirar, o problema pode passar despercebido 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.

Aplicação da abordagem e dos 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 caso ocorram falhas, cobrindo o risco de expiração de certificados.
  • Além disso, a equipe investiu na construção de testes de caos em seu SDLC, realizando testes de caos de rotina e capturando os resultados para validar técnicas de autopreservação e ajudar a descobrir problemas de confiabilidade anteriormente desconhecidos.

Verifique o seu conhecimento

1.

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

2.

Qual é o atributo de uma estratégia de alerta bem desenhada?

3.

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