Você sabe o que é APM?

O monitoramento do desempenho de aplicativos (APM) ajuda as empresas a monitorar o desempenho dos aplicativos de software para identificar e detalhar os problemas que ocorrem durante o desenvolvimento e o tempo de execução. Com o aumento dos aplicativos SaaS e da infraestrutura nativa da nuvem, o monitoramento do desempenho de aplicativos – que não deve ser confundido com o gerenciamento do desempenho de aplicativos – tornou-se uma ferramenta essencial para garantir um serviço de alta qualidade para aplicativos executados na Web e, principalmente, em aplicativos móveis.

As métricas de APM giram muito em torno do desempenho, medindo o número de transações por segundo que o aplicativo processa e o tempo total de resposta para cada uma dessas transações. Você também pode usar o APM para medir o desempenho dos dispositivos que executam essas transações, bem como para avaliar problemas de desempenho de hardware que possam resultar em gargalos. As ferramentas de APM, no entanto, são projetadas principalmente para medir diretamente o desempenho dos aplicativos em um nível granular, contando com a análise orientada por IA para entender rapidamente quaisquer dependências problemáticas na infraestrutura.

Com uma ferramenta de monitoramento de desempenho de aplicativos, as organizações podem fazer melhor uso dos dados que já estão coletando, o que inclui descobrir problemas antes que eles afetem os clientes, reduzir o tempo de recuperação quando ocorrem falhas, responder mais rapidamente e cumprir os acordos de nível de serviço (SLAs).

Neste artigo, daremos uma olhada detalhada nos tipos de sistemas e processos que o APM monitora, nos tipos de métricas que as ferramentas de APM relatam e nos recursos recomendados a serem procurados ao considerar uma solução de APM de primeira linha para sua organização.

O que o APM monitora?

O APM não mede diretamente a integridade da rede, mas sim a integridade de um aplicativo em execução nessa rede. Em sua essência, o APM monitora a velocidade transacional de um aplicativo da Web, incluindo a velocidade com que diferentes serviços executam sua parte da transação e outras métricas relacionadas ao desempenho do aplicativo. Embora as ferramentas de APM sejam diferentes em termos de design e conjunto de recursos, o objetivo principal do APM é coletar todos os componentes de cada transação gerada por um aplicativo e seus usuários, fornecendo às organizações percepções acionáveis sobre cada faceta de um aplicativo. O APM também pode detectar anomalias que o aplicativo gera e relata às operações e ao gerenciamento de TI, permitindo que os desenvolvedores e os engenheiros de confiabilidade do site (SREs) identifiquem e solucionem problemas desconhecidos ocultos na arquitetura do aplicativo.

As ferramentas de APM são projetadas para responder a várias perguntas importantes, incluindo:

  • O aplicativo está se comportando e respondendo como deveria?
  • Os gargalos de desempenho ou outros erros estão afetando o aplicativo?
  • Em caso afirmativo, qual é a origem desse gargalo ou erro? É o próprio aplicativo? São as interdependências entre os diferentes serviços que constituem o aplicativo? Um problema com a infraestrutura?
  • Qual é o impacto desse gargalo nos usuários finais e nos negócios?
  • Podemos corrigir esse gargalo?

Quais são as principais métricas para APM?

As ferramentas de APM geralmente medem três tipos de métricas, conhecidas como métricas RED:

  • Taxa: a taxa na qual uma transação é executada
  • Erro: se ela produz algum erro
  • Duração: o tempo que leva para executar a transação

Diferentes ferramentas adotam abordagens variadas de APM, proporcionando aos desenvolvedores e SREs uma compreensão mais abrangente dos problemas de desempenho dos aplicativos. Especificamente, as ferramentas de APM normalmente coletam as seguintes métricas:

  • Tempo médio de resposta: Com que rapidez o aplicativo está respondendo às solicitações dos usuários e concluindo as transações, e isso está diminuindo com o tempo?
  • Taxa geral de solicitações/tráfego de usuários: O desempenho geralmente diminui à medida que o número de usuários simultâneos aumenta. As soluções de APM medem o desempenho de cada transação, fornecendo um nível granular de detalhes que ajuda os SREs e os desenvolvedores a entender a origem das lentidões no desempenho.
  • Taxas de erro: Um aplicativo está gerando erros e qual é a gravidade deles? Em que parte do aplicativo esses erros estão sendo gerados? Essas informações podem agilizar a solução de problemas e medir o tempo de atividade geral do aplicativo.

KPIs comerciais e SLOs: O aplicativo está atendendo aos indicadores-chave de desempenho (KPIs), aos acordos de nível de serviço (SLAs) e aos objetivos de nível de serviço (SLOs) comerciais necessários, que podem incluir fatores como tempo de checkout, número de logins e duração ou frequência do tempo de inatividade? Qualquer violação do seu orçamento de erro de SLO – a taxa na qual você pode perder esses objetivos – pode ter um grande impacto financeiro na sua organização.

O que é uma solução de APM?

Uma solução de APM é um software que oferece vários recursos importantes de monitoramento de aplicativos. Esses recursos incluem:

  • Monitoramento de front-end: O monitoramento de front-end inclui suporte para monitoramento de usuários reais (RUM) e monitoramento de transações sintéticas. O monitoramento do usuário real torna-se ainda mais importante devido ao fato de que o código do lado do cliente, como o JavaScript, geralmente cria pontos cegos na experiência do cliente corporativo, e o monitoramento sintético pode detectar problemas de forma proativa antes que o código seja liberado.
  • Descoberta, rastreamento e diagnóstico de aplicativos (ADTD): As ferramentas de APM descobrem e criam um mapa de serviços de todos os microsserviços que compõem um aplicativo, servidores da Web, servidores de aplicativos, estruturas de aplicativos e outras plataformas na rede, incluindo servidores locais, servidores baseados em nuvem e sistemas executados em infraestruturas híbridas. Para que isso ocorra, o ADTD usa instrumentação de bytecode (BCI), que pode criar perfis de aplicativos em tempo real, bem como técnicas de rastreamento distribuído.
  • Análises: As soluções de APM são projetadas para rastrear dados de desempenho ao longo do tempo para que os desenvolvedores, SREs e proprietários de negócios possam determinar se o aplicativo atende aos seus SLOs e manter o controle das operações à medida que o ambiente muda. Essas alterações podem incluir um aumento no número de usuários, a degradação do serviço ou alterações no código subjacente. Usando a análise de causa raiz e a lógica de detecção de anomalias, a inteligência artificial (IA) e as ferramentas de aprendizado de máquina podem prever se o desempenho provavelmente se deteriorará e por quê. As ferramentas de APM também podem usar e analisar logs de aplicativos para gerar insights que identifiquem pontos problemáticos.

Embora as soluções de APM variem em termos de complexidade, design, escopo e preço, é fundamental perceber que o objetivo de uma solução de APM é fornecer aos desenvolvedores e SREs insights acionáveis não apenas sobre os problemas de desempenho dos aplicativos, mas também sobre os motivos desses problemas. Simplesmente saber que um aplicativo está lento ou apresentando erros não é muito útil. O APM é mais útil quando capacita as equipes a entender rapidamente a causa raiz dessas lentidões e erros. Uma ferramenta sólida de APM apresentará essas informações graficamente por meio de um painel que descreve e acompanha o desempenho de cada serviço e suas dependências ao longo do tempo.

Por que devo usar o APM?

O APM oferece uma série de vantagens claras para as organizações que adotam essas ferramentas, tais como

Redução das degradações de serviço e violações de SLO: Um dos principais motivos pelos quais as organizações adotam o APM é solucionar problemas rapidamente e fazer com que os sistemas voltem a funcionar plenamente para atender aos SLOs no caso de um problema, além de evitar a ocorrência de problemas futuros. O APM é uma ferramenta essencial para reduzir o tempo médio de resolução (MTTR) de problemas devido a erros relacionados a aplicativos e problemas de desempenho.

Aumento da receita: Se um aplicativo ou serviço estiver indisponível, os clientes podem rapidamente ficar frustrados e procurar uma alternativa, o que acaba afetando a receita. O APM não só ajuda a garantir que seus aplicativos permaneçam em funcionamento, como também pode ajudar a melhorar o tempo de carregamento de aplicativos críticos.

Aumento da velocidade e da competitividade: O APM ajuda a garantir a otimização dos aplicativos, aumentando a velocidade e a agilidade que permitem que as organizações acompanhem as demandas aceleradas do setor. Na maioria dos setores, a latência está no mesmo nível do tempo de inatividade, portanto, o aumento da velocidade e da agilidade se traduz em uma vantagem competitiva.

Melhoria da experiência digital e da satisfação do cliente: Seus clientes ficarão mais satisfeitos quanto mais rápido seu aplicativo responder. A latência é um fator determinante na opinião dos clientes – as pesquisas em computadores e dispositivos móveis usam o tempo de carregamento da página como um fator de classificação. Se você não estiver avaliando regularmente o desempenho dos aplicativos móveis e da Web, provavelmente estará perdendo clientes usuários finais.

Redução dos custos operacionais: Quando um aplicativo que não está sendo monitorado ativamente falha, ele geralmente o faz de forma catastrófica e sem aviso. Consequentemente, as organizações têm que parar tudo para lidar com o incêndio repentino, colocando suas equipes de DevOps em situações extremamente estressantes. O APM ajuda a minimizar essas despesas, fornecendo à organização uma visão mais ampla de qualquer problema antes que ele se torne uma catástrofe. Ao usar as ferramentas de automação de APM, as organizações também podem reduzir o número de funcionários, economizando ainda mais nas despesas com operações de TI.

Como escolher a solução de APM correta?

Existem muitas soluções de APM, cada uma com vantagens e desvantagens. Para ajudá-lo a escolher a solução de APM certa para sua organização, apresentamos a seguir uma série de considerações importantes, tendo em mente que o orçamento também será um fator importante.

Perguntas específicas da organização a serem respondidas:

  • Seus aplicativos são um único bloco de código executado em uma única máquina virtual (VM) ou você está usando um design moderno baseado em microsserviços?
  • Sua organização está usando metodologias modernas de desenvolvimento de software e adotando uma cultura de DevOps?
  • Deseja encontrar qualquer anomalia e proporcionar uma ótima experiência a uma grande variedade de usuários ou está satisfeito em atender bem apenas a uma parte dos clientes?
  • Quão “em tempo real” você precisa que seus insights sejam? Você precisa receber alertas em segundos após a ocorrência de um problema ou pode se dar ao luxo de receber alertas após apenas cinco minutos?

Recursos a serem procurados:

  • Suporte para aplicativos implantados em ambientes locais e baseados na nuvem, desenvolvidos com várias linguagens de programação
  • Relatórios e gerenciamento centralizados, incluindo um painel intuitivo
  • Visibilidade de pilha completa, em nível de código, de todos os aplicativos, serviços relacionados e suas dependências (como bancos de dados e serviços externos)
  • Inclusão de uma ampla variedade de métricas relevantes para sua organização
  • Suporte para transações sintéticas e monitoramento de usuários reais
  • Inteligência que oferece informações contextuais sobre a origem dos erros e gargalos dos aplicativos, com ferramentas de fluxograma que facilitam a identificação da causa raiz dos pontos problemáticos
  • Ferramentas de IA e aprendizado de máquina incorporadas à solução APM que facilitam a descoberta rápida da origem dos problemas de desempenho
  • Capacidade de rastrear KPIs comerciais importantes e garantir que você atinja seus SLOs em um ambiente baseado em microsserviços
  • Suporte para OpenTelemetry, o padrão líder para instrumentação de código aberto
  • Suporte para ambientes de contêineres e sem servidor, conforme necessário para a sua empresa
  • Capacidade de dimensionamento de acordo com suas necessidades
  • Treinamento eficaz para implementar e gerenciar a ferramenta, além de suporte de alta qualidade

Fontes:

Douglas Bernardini

Cybersecurity Specialist & Cloud Computing Expert with +10 years experience in IT infrastructure.

Specialist delivering assets for development teams in Google Cloud Platform (GCP) and Amazon web services (AWS)

Hands-on cloud security enterprise architect, with experience in SIEM/SOC, IAM, cryptography, pentest, network topologies, operating systems, databases, and applications.

Experience in DevSecOps analysis to discover vulnerabilities in software, identifying CI/CD risks gaps and recommending secure-coding process (S-SDLC).