Recomendações para responder a problemas de desempenho ao vivo
Aplica-se a esta recomendação de lista de verificação de Eficiência de Desempenho do Azure Well-Architected Framework:
PE:11 | Responder a problemas de desempenho ao vivo. Planeje como resolver problemas de desempenho incorporando linhas claras de comunicação e responsabilidades. Quando ocorrer uma situação problemática, use o que você aprende a identificar medidas preventivas e incorporá-las em sua carga de trabalho. Implemente métodos para retornar às operações normais mais rapidamente quando ocorrerem situações semelhantes. |
---|
Este guia descreve as práticas recomendadas para responder a problemas de desempenho ao vivo. Problemas de desempenho ao vivo referem-se a desafios e gargalos em tempo real que podem dificultar o funcionamento ideal de uma carga de trabalho. Resolver esses problemas prontamente não só facilita a detecção imediata e a retificação de soluços de desempenho, mas também garante que a carga de trabalho atenda consistentemente aos seus parâmetros de comparação de desempenho. Não resolvê-los pode levar a complicações, incluindo lentidão, falhas e falta de resposta do sistema e degradar a experiência do usuário. Eles também podem impedir que os usuários concluam suas tarefas com eficiência e, por sua vez, manchar a reputação da organização.
Definições
Termo | Definição |
---|---|
Correlação de dados | Alinhar logs, métricas e eventos de várias partes da carga de trabalho para identificar causas subjacentes. |
Análise da causa raiz | Um processo para identificar os fatores subjacentes responsáveis por um problema. |
Autorrecuperação | A capacidade de reparar automaticamente problemas sem intervenção humana. |
Auto-prevenção | Implementações em uma carga de trabalho para evitar possíveis problemas e falhas. |
Principais estratégias de design
Quando você enfrenta um problema de desempenho ao vivo, precisa estar preparado com os dados certos e um plano para responder ao problema. Esse plano deve incluir linhas claras de comunicação e responsabilidades. O objetivo principal é implementar soluções que facilitem um retorno rápido às operações regulares e forneçam insights do incidente. A integração de medidas preventivas ao fluxo de trabalho é uma estratégia fundamental. O objetivo é impedir que o mesmo problema aconteça novamente ou diminuir seus efeitos no desempenho se ele não for evitável.
Preparar-se para problemas
A resposta ideal para problemas de desempenho de site dinâmico é precisa e rápida. Precisão e velocidade na correção de desempenho exigem preparação. Para responder efetivamente a problemas de desempenho ao vivo, é crucial monitorar as principais métricas de desempenho, identificar a causa raiz dos problemas e implementar soluções ou otimizações apropriadas. Para executar essas etapas, talvez seja necessário analisar logs de carga de trabalho, realizar testes de desempenho, otimizar código ou configurações e dimensionar recursos. Os exemplos a seguir descrevem algumas áreas críticas de preparação:
Ter diagramas de arquitetura precisos. Os diagramas de arquitetura devem incluir todos os componentes e mostrar como eles interagem. A representação visual pode ajudar a identificar gargalos e pontos únicos de falha que podem levar à degradação do desempenho ou à indisponibilidade. O ideal é capturar e remover esses problemas antes que eles causem problemas, mas ter um diagrama atualizado pode ajudá-lo a identificar problemas em momentos de alto estresse.
Verifique o acesso a dados. Dados e logs de processos de monitoramento são essenciais para responder a problemas de desempenho em tempo real e realizar análises de causa raiz. Mas é importante manter a integridade e a confidencialidade dos dados. Responder a problemas de desempenho de site dinâmico geralmente requer acesso a dados subjacentes que podem não estar acessíveis normalmente. Você precisa garantir que a equipe tenha acesso aos dados necessários quando surgirem problemas. Mas você só deve conceder acesso restrito ao tempo e com privilégios mínimos e deve limitar esse acesso ao pessoal autorizado.
Definir alertas automáticos. Os alertas podem ajudá-lo a identificar e resolver problemas assim que eles ocorrem. Os alertas devem gerar notificações quando o desempenho da carga de trabalho se desvia das linhas de base de desempenho. Ao longo do tempo, você deve ajustar as configurações de alerta para evitar gerar muitas ou poucas notificações. As soluções de monitoramento que você usa precisam coletar dados suficientes para gerar alertas. Esses alertas devem se alinhar com metas de desempenho e linhas de base estabelecidas. Você deve evitar gerar alertas sobre problemas relevantes para suas metas. Exemplos de alertas incluem degradações no uso da CPU, memória, tempos de resposta e desempenho do banco de dados.
Criar um plano de triagem
A criação de um plano de triagem envolve a criação de uma abordagem estruturada para identificar, escalonar, analisar, priorizar e comunicar problemas de desempenho de site ao vivo. Um plano de triagem é uma estratégia para responder a problemas de desempenho ao vivo. Ele garante que as interrupções de desempenho sejam resolvidas de forma rápida e eficaz, com funções e procedimentos claros. A maioria dos problemas de desempenho não merece protocolos de recuperação de desastre, mas podem afetar a funcionalidade de carga de trabalho o suficiente para exigir o planejamento de triagem. Um plano de triagem bem documentado garante que todos os membros da equipe estejam alinhados e possam agir rapidamente, minimizando o impacto nos usuários e nas cargas de trabalho. Um plano de triagem deve incluir os seguintes componentes:
Identificação e monitoramento: implemente um sistema para identificar e monitorar problemas de desempenho em tempo real. Você deve ter uma lista das informações de contato de pessoas capazes de tomar decisões ou escalar problemas para níveis mais altos. O plano também deve identificar funções e responsabilidades. Ele precisa documentar quais contas obtêm acesso a informações protegidas e por quanto tempo.
Processo de escalonamento: defina um processo de escalonamento claro para garantir que os problemas de desempenho sejam escalonados para as equipes ou indivíduos apropriados em tempo hábil. A definição do processo deve incluir informações de contato e diretrizes para problemas de escalonamento.
Análise de causa raiz: desenvolva um processo para realizar uma análise de causa raiz para identificar a causa subjacente de cada problema de desempenho. O processo deve envolver a análise de logs e métricas de desempenho e a realização de testes de diagnóstico para identificar a origem de cada problema.
Priorização: estabeleça uma estrutura de priorização para determinar a gravidade dos problemas de desempenho e priorizá-los com base em seu efeito na carga de trabalho e nos usuários.
Comunicação: crie um plano de comunicação para manter os stakeholders informados sobre a status de problemas de desempenho e o progresso de sua resolução. Considere atualizações regulares, relatórios de status e canais de comunicação claros.
Documentação: documente o plano de triagem, incluindo todas as suas etapas, processos e práticas recomendadas. Essa documentação deve ser facilmente acessível aos membros da equipe envolvidos na resposta a problemas de desempenho.
Desenvolver métodos para identificar e resolve problemas
Resolver problemas de desempenho ao vivo envolve identificar e abordar quaisquer fatores que possam causar degradação de desempenho ou ineficiências em uma carga de trabalho dinâmica. Os dados coletados durante o monitoramento são inestimáveis quando você investiga e resolve incidentes relacionados ao desempenho. Esses dados fornecem um registro histórico de métricas de desempenho. Quando você tiver dados de monitoramento disponíveis, poderá analisar as causas raiz e identificar fatores contribuintes. Você deve usar todos os dados de monitoramento relevantes para entender e corrigir cada problema de desempenho.
Usar a análise de causa raiz
A análise de causa raiz requer teste de hipótese. Depois de examinar os dados de monitoramento, você deve listar possíveis causas do problema de desempenho e testá-los. Para realizar uma análise de causa raiz em um problema de desempenho ao vivo, você pode seguir estas etapas:
Reúna informações. Colete o máximo de informações possível sobre o problema de desempenho. Os exemplos incluem mensagens de erro, logs, métricas de desempenho e outros dados relevantes.
Defina o problema. Defina claramente o problema identificando os sintomas e o efeito que o problema tem na carga de trabalho ou nos usuários.
Investigar possíveis causas. Reduza o escopo da análise identificando o componente ou a área específica da carga de trabalho em que o problema de desempenho está ocorrendo. Identifique as possíveis causas do problema de desempenho com base nas informações coletadas. Esse processo pode envolver a análise de código, configurações, infraestrutura ou dependências externas.
Correlacionar dados. Aprofunde-se nos dados coletados para identificar padrões, anomalias ou correlações que possam contribuir para o problema de desempenho. A correlação de dados é fundamental para identificar problemas e causas de desempenho. Isso pode envolver a revisão de logs, a análise de métricas de desempenho e a realização de testes.
Testar hipóteses. Formular hipóteses com base nas possíveis causas que você identifica. Realize testes para validar ou refutar suas hipóteses. Você deve usar um ambiente de teste para ver se pode replicar o erro.
Implementar soluções. Depois de identificar uma causa raiz, desenvolva e implemente soluções para resolver o problema de desempenho.
Monitorar e validar. Depois de implementar as soluções, monitore continuamente a carga de trabalho para garantir que o problema de desempenho seja resolvido. Valide a eficácia das soluções monitorando as métricas de desempenho e os comentários dos usuários.
Compensação: as etapas de uma análise de causa raiz, como identificar possíveis causas, testar hipóteses e documentar a análise, podem ser demoradas. Para correlacionar problemas de desempenho, você também precisa coletar e armazenar dados. O tempo e a infraestrutura necessários podem adicionar trabalho significativo às equipes de operações e custo à carga de trabalho.
Risco: se você executar uma análise de causa raiz sem proteções de segurança adequadas, há um risco de expor informações confidenciais ao fornecer acesso a logs e dados.
Envolver o suporte do fornecedor
O suporte do fornecedor pode ser uma etapa essencial quando você lida com problemas de desempenho contínuos. Os fornecedores têm experiência, ferramentas, recursos e experiência para ajudar a corrigir problemas com seus produtos. Seu contrato de suporte com seu fornecedor determina o nível de suporte que um fornecedor fornece.
Geralmente, é melhor trabalhar em paralelo com fornecedores. Você deve criar um plano para que alguns membros da equipe colaborem com o suporte do fornecedor, enquanto outros continuam fazendo a triagem e corrigindo problemas de desempenho. As equipes de suporte do fornecedor também podem fazer sugestões sobre como ajudar a evitar e automatizar respostas a eventos semelhantes.
Você precisa ter informações de contato disponíveis para sua equipe. Os fornecedores também podem precisar de acesso aos dados para se envolver efetivamente na solução de problemas. Você precisa ter um plano em vigor para autenticar e autorizar contas externas ou convidadas a acessar dados de monitoramento.
Aprenda com as descobertas
Depois de corrigir um problema de desempenho de site ao vivo, você precisa examinar o que aconteceu. O objetivo é aprender com problemas de desempenho, não apenas identificar problemas. A melhor maneira de aprender é por meio da documentação. Documente cada problema e explique como corrigi-lo. Se um fornecedor ajudou, trabalhe com o fornecedor para aprimorar sua documentação, treinar sua equipe e modificar sua carga de trabalho adequadamente.
A documentação deve indicar como evitar que cada problema aconteça novamente. Uma maneira de evitar problemas recorrentes é introduzir automação para responder a problemas comuns. A automação deve adicionar qualidades de autorrecuperação e auto-prevenção a uma carga de trabalho. Junto com a automação, você pode criar alertas refinados que ajudam a responder antecipadamente aos indicadores de problema de desempenho.
Facilitação do Azure
Desenvolvendo métodos para identificar e resolve problemas: o Azure fornece várias ferramentas para ajudá-lo a responder a problemas de desempenho ao vivo:
O Azure Monitor é uma solução de monitoramento abrangente que fornece insights sobre o desempenho e a integridade de seus aplicativos e infraestrutura. O Monitor oferece recursos como métricas, logs, alertas e painéis para ajudá-lo a monitorar e diagnosticar problemas de desempenho.
O Application Insights é um serviço de APM (gerenciamento de desempenho de aplicativos) que ajuda desenvolvedores e profissionais de DevOps a monitorar aplicativos dinâmicos. Ele detecta automaticamente anomalias de desempenho, coleta logs e eventos no nível do aplicativo e fornece ferramentas de análise para diagnosticar problemas.
O Log Analytics é um serviço que coleta e analisa dados de log de várias fontes, incluindo aplicativos, máquinas virtuais e recursos do Azure. Ao usar o Log Analytics, você pode consultar e analisar dados de log para obter insights sobre o desempenho e o comportamento de seus aplicativos.
Links relacionados
Lista de verificação de eficiência de desempenho
Consulte o conjunto completo de recomendações.