Desenvolver operações com observabilidade
Obtenha visibilidade do sistema, insights e tome decisões baseadas em dados. |
---|
Crie uma cultura que melhore continuamente a qualidade monitorando a carga de trabalho e levando em consideração todos os pilares do Azure Well-Architected Framework. Permita que a equipe e as partes interessadas tomem decisões de curto e longo prazo em diversas facetas, fornecendo os dados, estatísticas e tendências necessários. Aprenda com seus dados e promova melhorias.
As operações criadas para fins de observabilidade são fundamentais na manutenção proativa do aplicativo, garantia de qualidade e segurança, planejamento de capacidade e gerenciamento de produtos.
Um aspecto crucial do monitoramento de aplicativo é o uso da modelagem de integridade para ajudar você a prever problemas antes que eles se tornem incidentes e afetem a experiência do cliente. O monitoramento eficiente reduz os ciclos reativos gastos no gerenciamento de incidentes.
Cenário de exemplo
A Contoso desenvolveu um aplicativo para uso interno chamado Contoso Real Estate. Este aplicativo Web permite que novas contratações ou funcionários existentes que estão se mudando procurem e reservem imóveis por um curto prazo para ajudá-los na transferência. O departamento de RH da Contoso também usa o aplicativo para auxiliar nas transferências.
O aplicativo está em produção e é implantado inteiramente no Azure. Ele é criado em microsserviços usando os Aplicativos de Contêiner do Azure e também usa o Azure Functions, o Banco de Dados do Azure para PostrgreSQL, o Armazenamento de Blobs do Azure e o Azure Monitor.
Observar sua carga de trabalho por telemetria
Emita telemetria do código do aplicativo que correlaciona os pontos-chave do fluxo de execução e fornece uma exibição de ponta a ponta em diferentes níveis de granularidade.
Priorize ações de acordo com o nível de gravidade e compreenda o contexto com base na sua verbosidade. Essas informações são cruciais para fins de solução de problemas.
Desafio da Contoso
- Os usuários estão relatando que, após uma atualização recente do aplicativo Contoso Real Estate, uma página em branco ou uma mensagem de erro genérica é ocasionalmente exibida na página de pesquisa do Aplicativo Web. Os erros parecem aleatórios e a funcionalidade de pesquisa geralmente funciona se os usuários apenas atualizarem a página ou reenviarem a pesquisa.
- Ao analisar os logs no microsserviço de pesquisa, a equipe percebe um aumento nos erros devido aos tempos limite de conexão com o Banco de Dados do Azure para PostgreSQL, mas atualmente não têm como saber se um erro exibido nos logs do microsserviço de pesquisa corresponde às páginas de erro que os usuários veem ou não.
Aplicando a abordagem e os resultados
- A equipe de desenvolvimento decidiu expandir as informações que registram do aplicativo Web e dos microsserviços principais para obter detalhes do problema. Para o cenário de pesquisa, eles estão capturando os termos de pesquisa junto com outros atributos de transação disponíveis, como hora, IP do cliente e o nome de usuário associado à pesquisa. Esses dados extras devem fornecer informações suficientes para que possam correlacionar transações entre camadas.
- Essa alteração permitiu que a equipe confirmasse que os tempos limite de consulta do banco de dados, que não estavam sendo tratados corretamente na atualização mais recente do aplicativo, eram a causa raiz das falhas que os usuários estavam enfrentando. Após descobrir a causa raiz, a equipe implementou uma correção com facilidade.
- A equipe agora está projetando uma nova abordagem, usando OpenTelemetry, para implementar uma solução de rastreamento distribuído mais abrangente que inclui todas as camadas de solução.
Visualizar dados de monitoramento em painéis
Agregue e visualize dados em painéis para apresentar dados de monitoramento que atendam ao público e mantenham o contexto de negócios em mente. Use painéis situacionais para exibir dados para aumentar a conscientização entre as partes interessadas. Use painéis operacionais e pastas de trabalho com recursos de detalhamento para atividades do operador, como resposta a incidentes. Atualize frequentemente os painéis e forneça dados granulares.
Com as visualizações, você pode analisar tendências, rastrear metas de negócios e gerenciar incidentes.
Painéis adaptados ao interesse do cliente tornam a interpretação relevante e aceleram o tempo de detecção e ação.
Desafio da Contoso
- A equipe de carga de trabalho agrega dados de telemetria de todas as camadas de solução em um único Espaço de Trabalho do Log Analytics, que pode ser acessado pelas equipes de operação e desenvolvimento e outras partes interessadas do projeto. No entanto, a interação com os dados é difícil e complexa, o que é frustrante para os membros da equipe que precisam diferenciar o ruído de fundo dos dados acionáveis.
Aplicando a abordagem e os resultados
- A equipe se esforça para agregar e visualizar dados usando dashboards. Cada dashboard será personalizado para um público específico:
- Os dashboard dos stakeholders da solução serão mais orientados para os negócios, apresentando uma visão geral de nível mais alto da integridade geral da solução, juntamente com indicadores de negócios, como o número de usuários atendidos, pesquisas e reservas realizadas.
- Painéis operacionais e pastas de trabalho terão dados mais detalhados e granulares para a equipe de operações. Esses dashboards terão recursos de detalhamento que permitem que os usuários explorem os dados em diferentes níveis de granularidade. Os usuários poderão usar esses dashboards e pastas de trabalho para executar tarefas de solução de problemas e outras tarefas de resposta a incidentes.
- Os dashboards permitirão que os usuários analisem tendências, acompanhem metas de negócios e gerenciem incidentes de forma mais eficaz. Os dados apresentados em cada dashboard serão mais relevantes para o seu público-alvo e orientados pelos seus interesses e necessidades.
Projetar uma estratégia de alerta robusta
Torne os alertas acionáveis notificando as funções responsáveis com descrições padronizadas e níveis de gravidade. Forneça informações agrupadas de várias fontes e rastreie desvios das metas de negócios.
Dispare alertas apenas para incidentes que exijam ação e busque alertas proativos e instigantes que iniciem ações antes que um estado degradado se torne uma falha. Um bom sistema de alerta identifica ações e gravidade e fornece apenas dados suficientes para gerar clareza e propósito. Os operadores podem iniciar a correção sem demora.
Desafio da Contoso
- O Azure Monitor é usado para enviar alertas à equipe de operações quando algo dá errado. No entanto, a equipe atualmente recebe muitos alertas que são irrelevantes, pouco claros ou redundantes. Isso causa fadiga de alerta e está afetando a produtividade da equipe e fazendo com que alguns alertas importantes passem despercebidos.
- Também houve algumas situações de interrupções que poderiam ter sido evitadas ou minimizadas se um alerta fosse enviado prevendo uma falha. Se a equipe tivesse alertado melhor para a degradação antes que as interrupções ocorressem, essas situações poderiam ter sido evitadas. Por exemplo, em alguns casos, a lentidão no tempo de processamento de consultas de banco de dados resultou em interrupções. Ao solucionar as interrupções, a equipe percebe que o desempenho do processamento de consultas diminui lentamente com o tempo, piorando cada vez mais até causar uma interrupção total.
Aplicando a abordagem e os resultados
- A equipe de operação lança uma iniciativa para limpar todos os alertas de baixa prioridade que causam fadiga de alerta. Somente alertas críticos e acionáveis podem permanecer ativos. Além disso, a equipe revisa (e aprimora, conforme necessário) os alertas que permanecerão ativos para garantir que contenham contexto suficiente para permitir que eles tomem as ações corretivas necessárias.
- Eles também aproveitam a oportunidade para definir novos alertas proativos e acionáveis que lhes permitirão agir antes que uma falha ocorra. Por exemplo, eles geram um novo alerta para notificar os DBAs assim que uma lentidão consistente no desempenho da consulta do banco de dados for exibida.
- Como próxima etapa, a equipe está analisando a automação de respostas a alertas comuns, como a situação com o desempenho da consulta ao banco de dados.