Projeto para operações
- 15 minutos
|
|
|---|
Falhas de teste no início e muitas vezes durante o desenvolvimento. Determine como os problemas de desempenho afetam a confiabilidade. Por uma questão de análise de causa raiz e postmortems, certifique-se de que todas as equipes possam ver o status de dependências e falhas contínuas. Use insights, diagnósticos e alertas de sistemas observáveis para gerenciar incidentes e melhorar continuamente.
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.
Adicione 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 monitorização global dos componentes e fluxos fornece uma visão holística do estado de saúde. Esses dados ajudam os engenheiros de confiabilidade do site a priorizar seus esforços para corrigir problemas.
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 quer ser capaz de analisar transações e solicitações de usuários à medida que eles se movem por vários níveis da solução para identificar gargalos que podem causar instabilidade e solucionar problemas de forma eficiente.
Aplicação da abordagem e dos resultados
A equipe de carga de trabalho usa o Application Insights para capturar logs e métricas 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 associado ao workload.
Os dados no espaço de trabalho do Azure Monitor podem ser usados para analisar a integridade de componentes individuais e a solução geral.
A correlação de entradas que pertencem à mesma solicitação entre componentes e camadas ajuda a equipe a determinar a integridade da carga de trabalho e solucionar problemas com mais facilidade.
Preveja possíveis problemas e comportamentos incomuns
Use alertas priorizados e acionáveis para tornar visíveis os problemas de confiabilidade. Invista em processos e infraestrutura confiáveis para acelerar a triagem.
Os engenheiros de confiabilidade do local podem ser notificados de problemas imediatamente. Eles podem lidar com incidentes contínuos no local ao vivo e abordar proativamente possíveis falhas que os alertas preditivos identificam antes que se tornem incidentes ativos.
O desafio da Contoso
A equipa espera um aumento de tráfego no início de cada período, à medida que os alunos se inscrevem nas aulas, acedem aos programas e compram manuais escolares.
Durante este período crítico do ano letivo, a equipe precisa garantir que haja capacidade suficiente para lidar com o aumento da carga. Devem ser capazes de reagir rapidamente a outros potenciais problemas de disponibilidade que possam surgir.
Aplicação da abordagem e dos resultados
A equipe configura as camadas da Web e do banco de dados para serem dimensionadas automaticamente para que haja capacidade extra antes que o aumento esperado na demanda e na capacidade seja adicionado à medida que a carga aumenta.
O plano de resposta a emergências é atualizado para que a equipe de resposta a incidentes priorize alertas relacionados aos fluxos de estresse durante esse período.
Teste de riscos de confiabilidade
Simule falhas e execute testes em ambientes de produção e pré-produção.
É útil experimentar falhas na produção para que você possa definir expectativas realistas para a recuperação. Essa prática permite que você faça escolhas de design que respondem graciosamente a falhas. E você pode testar 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.
Após o início do período, a funcionalidade de inscrição do aluno não é muito utilizada. Portanto, se esse certificado expirar, o problema pode passar despercebido por algum tempo.
Durante o último período de registro, houve várias interrupções no serviço porque o sistema não lidou bem com falhas transitórias de conectividade. A equipe fez algumas melhorias de código para lidar com falhas transitórias, mas não sabe como a funcionalidade se comportará em cenários reais de produção.
Aplicação da abordagem e dos resultados
A equipe cria testes de transação sintética para serem executados em produção mensalmente. Este teste simula vários fluxos, incluindo o fluxo de registo.
O alerta é configurado para os testes de transação sintética, para que a equipe seja notificada se houver uma falha, como certificados expirando.
A equipe adiciona testes de caos ao seu ciclo de vida de desenvolvimento de software (SDLC). Eles fazem testes de caos de rotina e capturam os resultados para validar técnicas de autopreservação e ajudar a descobrir problemas de confiabilidade desconhecidos.