Opções para a observabilidade de cargas de trabalho IaaS com o Azure Monitor

Não é incomum que cargas de trabalho implementadas em ambientes de infraestrutura como serviço (IaaS) sejam monitoradas de forma insuficiente. O problema causado por essa deficiência impacta diretamente na produtividade dos times, devido a imprevisibilidade dos problemas bem como dificuldade de rastreamento já que, sem uma visão clara sobre o ambiente produtivo, qualquer ação converte-se em um “tiro no escuro”. Tudo isso, resulta em potencial aumento do custo operacional.

Os pilares da observabilidade (métricas, tracing e logs) fornecem respostas adequadas, que explicam o estado das cargas de trabalho ao longo do tempo. Eles são cruciais para a obtenção de insights sobre comportamento e eficiência dos workloads. A partir deles é possível tomar decisões mais assertivas sobre a evolução da carga de trabalho, mas também facilitar a identificação de comportamentos inadequados para resolução proativa e no melhor tempo.

Observability (re)defined

Em IaaS, o cliente tem total controle sobre a infraestrutura que executa suas cargas de trabalho. Desta forma, o primeiro dos pilares, métricas, precisa ser acompanhado desde a máquina virtual – considerando aspectos como memória, CPU e disco – passando por frameworks e plataformas (métricas da JVM, por exemplo), e finalizando na aplicação, onde é possível extrair métricas como volume de recursos consumidos pelo processo, response time, throughput, e muito mais.

Os Logs, o segundo pilar da observabilidade, precisam fornecer detalhes temporais de diversas fontes, indo muito além das aplicações. Em ambientes com Windows, por exemplo, é interessante consolidar logs do IIS, ou de alguma sessão dos Logs de Eventos do Windows.

O terceiro pilar, tracing, é extremamente importante quando a carga de trabalho opera de forma distribuída, onde operações e transações de negócio envolvam diversos serviços. Avaliar os logs de cada serviço individualmente, para identificar sequências de uma mesma operação é bastante oneroso, e muitas vezes inviável. O tracing serve justamente para simplificar essa “relação” através de adição de identificadores a estes logs, permitindo identificá-los de uma forma muito simples.

Para cargas de trabalho operando no Microsoft Azure, em praticamente todos os cenários, estes pilares podem ser satisfeitos utilizando as ferramentas do  Azure Monitor.

Métricas diretas do Hipervisor das máquinas virtuais são extraídas automaticamente e endereçadas ao Log Analytics Workspaces. Para mais detalhes, pode ser instalado e ativado o Agente de Monitoramento da Microsoft (MMA),  que extraí métricas do Sistema Operacional convidado. Já na aplicação, o Application Insights fornece algumas métricas muito importantes como número de requisições, erros e tempo de resposta.

Para Logs, tanto o Log Analytics Workspaces quanto o Application Insights, fornecem formas de obter e analisar logs de forma bastante simples, com pouca necessidade de instrumentação através da  Kusto Query Language tanto para a aplicação, quanto para o estrutura que a mantém. Finalmente, o Application Insights também oferece suporte a tracing distribuído.

Observabilidade das aplicações e da infraestrutura que a suportam é imprescindível para o sucesso de um produto pois mitiga riscos de problemas em produção.  O Azure Monitor é uma excelente ferramenta para suportar essa necessidade.

Em Resumo
  • O problema

    Não é raro que aplicações implementadas usando infraestrutura como serviço sejam deficientes de monitoramento, trazendo dificuldades na solução de problemas e, indiretamente, aumentando o custo de operação.
  • O insight

    Para workloads rodando no Azure, o Azure Monitor é uma ferramenta completa, que aborda os três pilares da observabilidade (Logs, Métricas e Tracing), e pode ser facilmente integrada ao sistema, trazendo visibilidade para o estado de saúde do aplicação.

Douglas Picolotto

Sou arquiteto de software, desenvolvedor, apaixonado por tecnologias, metodologias e padrões. Tenho mais de 15 anos de experiência, sempre em empresas que desenvolvem software de vanguarda. Sou apaixonado por Cloud Computing e sou especialista em tecnologias da Amazon.

Talvez você goste também

Carregando posts…

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *