Inmetrics

Application Performance Monitoring (APM): o que é e por que se preocupar com isso?

Application Performance Monitoring é a linha de serviço que garante que softwares atendam seus requisitos de desempenho (“requisitos de desempenho” está na lista de requisitos não-funcionais de software).

De acordo com o APM Conceptual Framework do Gartner, as dimensões de serviço de APM são:

  • End User Experience
  • Runtime Application Architecture
  • Business Transactions
  • Deep Dive Component Monitoring
  • Analytics / Reporting

End User Experience ou monitoramento de Experiência do Usuário Final é feito de forma sintética/proativa ou real. A forma sintética/proativa é realizada com a utilização de robôs emuladores que simulam o comportamento do usuário.

Já a forma real é feita através da coleta de logs de aplicação ou ainda com plugins de softwares especializados em APM que são entregues junto com o código da aplicação. Os 2 tipos de monitores normalmente servem para popular dashboards e disparar alarmes quando ocorrer qualquer violação (ou tendência de violação) de tempo.

Runtime Application Architecture é o entendimento do fluxo transacional. Com aplicações cada vez mais distribuídas e descentralizadas é de extrema importância conhecer o fluxo transacional em momentos de troubleshooting ou tuning de sistemas.

Gerar um desenho transacional e de atualização automática, é parte da entrega de muitas ferramentas de APM do mercado. Entender o desenho transacional e atuar em pontos de gargalo é função do profissional de APM.

A quantidade de pedidos ou vendas de um e-commerce por hora, quantidade de recargas de celular pré-pago por dia, quantidade de chamadas de uma API por segundo, são exemplos de Business Transactions.

Conhecer as principais business transactions e saber seus requisitos de desempenho, é papel do profissional de APM. Em situações de crise de desempenho ou disponibilidade e durante investigações para tuning, saber os acordos de níveis de serviço (SLAs) definidos para as business transactions e o quanto estes estão sendo atendidos, é primordial para se obter o status de um serviço ou componente de TI.

Se um componente de software ou hardware pode ser monitorado, ele deve ser monitorado! Isto é Deep Dive Component Monitoring. Quanto maior a profundidade da monitoração, maiores as chances de solucionar problemas de desempenho com agilidade. Mas é preciso ter cuidado, toda monitoração gera sobrecarga no desempenho de aplicações.

Fazer profiling de software pode ser algo extremamente custoso ao sistema e o monitoramento utilizado para resolver problemas de desempenho pode piorá-lo se mal implementado. Equilíbrio é a chave para o sucesso.

O Analytics / Reporting de métricas normalmente é realizado através da coleta de dados brutos para posterior análise com algum intuito relacionado ao desempenho, capacidade ou custos (quando em cloud) de uma aplicação.

Ainda de acordo com o Gartner Magic Quadrant for Application Performance Monitoring, em  2019, estão entre as ferramentas líderes em APM: Dynatrace, Cisco (App Dynamics), New Relic e Broadcom (CA Technologies). Estas ajudam a gerenciar os serviços de performance em praticamente todas as camadas citadas acima.

A IN|METRICS nasceu entregando serviços de APM aos nossos clientes. Praticamente popularizou o termo APM no Brasil.

O próprio nome IN|METRICS é oriundo de “internal metrics”, nossa filosofia é conhecer profundamente componentes de software e hardware, afim de fazer otimizações em camadas internas até um ponto de melhoria que traga benefícios a camadas externas.

São exemplos de camadas internas:

  • Trechos de códigos
  • Itens de configuração

E de camadas externas:

  • Tempo de resposta de serviços
  • Tempo de transações de negócio, tais como: pedidos, vendas, etc.