O advento da tecnologia fez com que as empresas otimizassem a experiência digital. Não importa se você é uma startup ou uma corporação bem estabelecida; se deseja permanecer relevante, precisa ter velocidade para entregar experiências do usuário perfeitas.
Em um mundo acelerado, os aplicativos de monitoramento são fundamentais para a operação dos negócios. Esta publicação do blog aborda o que é o monitoramento do desempenho de aplicativos (APM), como funciona e por que é essencial nos dias de hoje.
O que é APM?
APM é a prática de usar dados em tempo real para rastrear o desempenho de um aplicativo e as experiências digitais dos seus usuários finais. O APM ajuda empresas a detectar e diagnosticar problemas complexos de desempenho de aplicativos para garantir que estes atendam ao nível de serviço esperado.
Embora os termos "monitoramento do desempenho de aplicativos" e "gerenciamento do desempenho de aplicativos" normalmente sejam usados de forma intercambiável, você também pode ver termos como "monitoramento de desempenho" ou "monitoramento de aplicativos" sendo usados para descrever este conjunto de ferramentas e processos.
Por que APM é importante?
Ninguém quer lidar com um aplicativo lento ou corrompido, seja um usuário final ou as equipes que fazem a manutenção e criam aplicativos. À medida que a tecnologia evolui rapidamente, as expectativas dos clientes por experiências digitais simplificadas, rápidas e confiáveis também evoluem. A computação em nuvem, os aplicativos móveis e os dispositivos de Internet das Coisas (IoT) tornaram o cenário de TI mais distribuído e complexo, tornando a manutenção do desempenho dos aplicativos ainda mais desafiadora. No entanto, com uma ferramenta APM, você pode contornar essa complexidade e monitorar, diagnosticar e otimizar proativamente o desempenho do seu aplicativo. Isso possibilita tempo e confiança para identificar e resolver problemas antes que eles afetem seus usuários finais, ao mesmo tempo que toma decisões estratégicas para melhorar a eficiência, reduzir custos e aumentar a satisfação do cliente. À medida que a dependência de serviços digitais cresce e a complexidade aumenta, o APM se torna mais indispensável do que nunca para uma estratégia de TI moderna.
Os benefícios das ferramentas de APM
Vamos explorar as vantagens de implementar uma solução de APM.
Expõe a causa raiz dos problemas
Encontrar a causa raiz de bugs de software e problemas de desempenho geralmente é como descascar uma cebola: cada camada removida revela outra abaixo dela. O APM simplifica a identificação de causas raiz rastreando solicitações em todos os componentes de todo o seu stack. Em vez de ficar preso em erros superficiais, o APM esclarece os fatores subjacentes e profundos que causam problemas. Com insights no nível do código, você pode identificar gargalos, ineficiências e dependências problemáticas, não importa onde elas se originem: seu próprio aplicativo, infraestrutura ou serviços de terceiros.
Eliminando a complexidade com uma visão unificada de todo o stack
O APM fornece insights profundos no nível do código e visibilidade para todos os componentes do aplicativo, incluindo serviços da web, bancos de dados, camadas de cache, APIs de terceiros, recursos de infraestrutura e muito mais. Você pode ver as interações entre os componentes.
Redução da perda de receita devido a períodos de inatividade/degradações
Mesmo interrupções curtas ou tempos de resposta lentos podem ter grandes implicações na receita de negócios digitais modernos. Clientes simplesmente não toleram páginas lentas, mensagens de erro ou transações com falha. Em vez disso, eles abandonarão os carrinhos de compras, sairão do seu site e levarão os negócios para outro lugar.
Os APMs reduzem o período de inatividade do aplicativo adotando uma abordagem proativa para monitorar possíveis problemas de desempenho e alertar as equipes para que elas possam tomar medidas para evitar que o problema se agrave. O APM fornece uma análise da causa raiz, bem como visibilidade profunda do desempenho do aplicativo em uma variedade de dispositivos e plataformas.
Ao manter uma experiência consistentemente confiável e de alto desempenho, evitam-se perdas potenciais por compras abandonadas, conversões malsucedidas, penalidades de conformidade e insatisfação do cliente que podem prejudicar irreparavelmente a reputação da sua marca.
Melhor utilização dos recursos e dimensionamento certo da infraestrutura
Com a visibilidade granular do APM sobre o desempenho do aplicativo em todo o stack, fica claro quando há infraestrutura provisionada em excesso e subutilizada, uma maneira infalível de gastar demais em custos de nuvem. Por outro lado, os dados do APM esclarecem quando workloads atingem a capacidade máxima do servidor e recursos adicionais são necessários. Essa consciência situacional permite que você dimensione corretamente a infraestrutura de forma contínua, conforme as demandas flutuam. Com esses insights, você pode refatorar o código e ajustar as configurações para obter o máximo desempenho dos seus investimentos em infraestrutura existentes. Seja executado no local ou na nuvem, o APM capacita as organizações a evitar o provisionamento excessivo e eliminar o desperdício de recursos.
Uma melhor experiência do usuário final
Os usuários finais esperam velocidade e confiabilidade quando usam aplicativos web. Eles querem desempenho otimizado e tempo de resposta rápido.
Os usuários abandonam um site em segundos se ele não carrega. E pior ainda: se uma pessoa tiver uma experiência do usuário ruim, ela provavelmente vai procurar a concorrência. Um estudo da Forbes sugere que 12% dos usuários avisariam amigos e familiares sobre um site ou aplicativo com o qual não tiveram uma boa experiência, o que pode ter um impacto negativo no êxito da empresa, na satisfação dos clientes e na reputação da marca.
Trabalho das equipes de engenharia facilitado
Os problemas de desempenho do aplicativo também podem causar grandes transtornos para as equipes de engenharia. Um engenheiro de plantão pode receber um alerta crítico do sistema sobre transações da empresa às 3h, o que pode fazer com que todas as equipes tentem resolver o problema no meio da noite.
É ainda pior quando um problema crítico surge sem nenhum contexto claro, deixando os engenheiros incertos sobre a causa raiz do problema. O problema pode vir de uma API, do cluster do Kubernetes, do serviço na nuvem ou de vários outros locais, do código à nuvem. Quanto mais tempo demorar para ele ser resolvido, maior será o impacto negativo sobre os clientes e os resultados da empresa.
O APM ajuda as equipes de engenharia a identificar problemas rapidamente e a resolvê-los proativamente. Por exemplo, uma equipe de engenharia pode definir um limite crítico que envia um alerta quando os tempos de carregamento da página se tornam lentos e, depois, combinar isso com um rastreamento detalhado para localizar rapidamente a causa e corrigi-la antes que os usuários finais sejam afetados.
A alternativa é aprender sobre o problema a partir dos usuários finais, o que significa que eles já foram impactados, e lutar para resolver o problema sem o contexto adicional que o APM fornece, resultando em tempo médio de detecção (MTTD) e tempo médio de resolução (MTTR) mais longos.
Principais recursos das soluções de APM
Essencialmente, as ferramentas de APM fornecem visibilidade profunda do desempenho em tempo real de seus aplicativos e infraestrutura subjacente, não importa o tipo de aplicativo que você esteja monitorando. Essa visibilidade é o resultado de um poderoso conjunto de recursos de monitoramento que trabalham em harmonia para fornecer uma visão completa de todo o seu stack de tecnologia. Os principais recursos que compõem um conjunto APM abrangente são:
Dashboards operacionais
Os dashboards operacionais fornecem uma exibição geral de alto nível do desempenho do seu aplicativo. É possível personalizar dashboards operacionais para exibir suas métricas de monitoramento mais importantes, desde sinais clássicos até principais indicadores de desempenho (KPIs) personalizados e quaisquer serviços que você esteja monitorando.
Monitoramento real do usuário
O monitoramento real do usuário, também conhecido como RUM, fornece insights sobre o que os usuários reais estão fazendo no seu aplicativo, além de quão bem o aplicativo está funcionando para esses usuários.
Monitoramento sintético
O monitoramento sintético envolve usar um navegador headless para imitar o comportamento de usuários reais. Os utilizadores podem testar fluxos de usuário específicos proativamente sem precisar de dados de usuários reais.
Monitoramento Serverless
O monitoramento Serverless permite que você monitore o desempenho dos aplicativos que usam serviços na nuvem, como o Amazon Web Services (AWS), em vez de servidores locais.
Monitoramento de banco de dados
O monitoramento de banco de dados permite monitorar o desempenho do seu banco de dados para determinar quanto tempo as consultas estão demorando.
Monitoramento de Mobile
O monitoramento de Mobile permite monitorar aplicativos Android e iOS, incluindo problemas de latência e histórico de crash.
Monitoramento de infraestrutura
O monitoramento de infraestrutura é necessário para obter insights sobre o desempenho da sua infraestrutura, seja hardware, infraestrutura de nuvem ou clusters do Kubernetes.
Mapas de serviço
Os mapas de serviço permitem que você veja rapidamente suas dependências e conexões do aplicativo, o que é especialmente importante em aplicativos grandes que usam milhares de serviços.
Uma boa solução de APM também proporciona a oportunidade de consultar seus dados de telemetria para obter insights mais detalhados, examinar logs e usar trace distribuído para examinar vários eventos e encontrar a causa raiz dos problemas.
Escolhendo uma solução de APM?
As soluções de APM são feitas para ajudar as empresas a monitorar e gerenciar o desempenho de aplicativos. A variedade de soluções e suas capacidades evoluiu conforme a tecnologia foi melhorando. Porém, um software básico de APM é capaz de coletar dados sobre vários aspectos de um aplicativo, como tempo de carregamento de página, tempo de resposta e taxa de erros.
Ferramentas de APM
Uma boa ferramenta de APM deve responder às seguintes perguntas:
- "O aplicativo está corrompido ou lento?"
- "Se o aplicativo está corrompido ou lento, o que está causando o problema?"
As equipes de DevOps e engenharia podem usar ferramentas de APM para responder essas perguntas e encontrar e corrigir problemas rapidamente, antes que afetem os usuários reais.
Com tantas ferramentas de APM para escolher, pode ser desafiador saber qual é melhor. As melhores ferramentas de APM têm estes recursos-chave:
- Visibilidade abrangente do desempenho do aplicativo.
- Monitoramento em tempo real para detectar problemas com rapidez e evitar interrupções.
- Design fácil de usar com uma interface intuitiva e navegação simples para usuários de diferentes níveis técnicos.
- Dashboards personalizáveis que podem ser ajustados conforme as necessidades e métricas específicas da equipe.
- Capacidade para alertas proativos, notificando prontamente as equipes sobre quaisquer problemas.
Métricas de APM
Métricas oferecem insights sobre desempenho. Se as métricas forem desfavoráveis, isso sinaliza às equipes que pode haver um problema que precisa ser resolvido, evitando que o problema se agrave. O APM utiliza várias métricas importantes para garantir a funcionalidade ideal. Entre elas estão:
- Tempo de resposta: a medida de tempo que um aplicativo leva para responder à ação do usuário.
- Taxa de erros: a frequência de erros gerados pelo aplicativo.
- Taxa de solicitação: o número de solicitações recebidas por um aplicativo por unidade de tempo.
- Disponibilidade do aplicativo (tempo de operação): o tempo total em que o aplicativo está em execução e disponível para uso.
- Uso de CPU: quanto de armazenamento de recurso o aplicativo está utilizando.
- Pontuação do índice de desempenho do aplicativo (Apdex): o desempenho relativo do aplicativo em comparação a métricas de desempenho "normais".
- Pontuação do acordo de nível de serviço (SLA): quantifica o nível de serviço que um cliente pode esperar de um provedor de serviço, destacando benchmarks de desempenho específicos que o aplicativo de software deve alcançar. Essa pontuação é calculada usando tempo de resposta, taxa de erros, tempo de operação e número de solicitações em um determinado período.
Quem usa APM?
O APM é uma prática importante para todas as empresas, sejam ou não do setor de tecnologia. Como a maioria das empresas tem presença on-line, é necessário monitorar o desempenho dos ativos web e a experiência geral dos usuários finais. Mas quais equipes estão usando e se beneficiando das soluções de APM? Os casos de uso podem variar de acordo com o tamanho e o escopo do aplicativo.
- Engenheiros de DevOps automatizam processos relacionados a teste, implantação e manutenção de aplicativos em produção. O APM é uma prática recomendada essencial de DevOps.
- Engenheiros de confiabilidade de sites (SREs) usam uma abordagem baseada em software para as operações. O foco desse trabalho é garantir que os aplicativos sejam confiáveis. É absolutamente essencial que as equipes de SRE usem o APM para monitorar proativamente a confiabilidade do site.
- Engenheiros de software escrevem código e criam recursos. Em empresas menores, engenheiros de software podem estar envolvidos em todas as partes do processo, incluindo o monitoramento do código em produção. Até mesmo em empresas maiores, engenheiros se envolvem bastante em muitas partes do ciclo de vida do software.
Como começar a usar o monitoramento do desempenho de aplicativos?
Para integrar o monitoramento do desempenho de aplicativos, é necessário instalar agentes para rastrear os dados que fluem pelo aplicativo. Esse processo é conhecido como instrumentação, e costuma ser tão simples quanto usar uma interface de linha de comando (CLI) para instalar automaticamente os agentes que você precisar. Esses agentes coletam e relatam informações sobre transações da web e fora dela. Também é possível usar a instrumentação personalizada para incluir mais detalhes nos traces da transação ou bloquear a instrumentação de transações que você não deseja acompanhar. Ao usar a CLI para automatizar o processo de instrumentação, você pode começar a enviar os dados de telemetria para sua solução de APM em minutos.
Os aplicativos distribuídos complexos usam muitos serviços diferentes e, idealmente, todas as partes de um aplicativo devem ser instrumentadas. Uma ferramenta de APM abrangente fornece integrações para muitos serviços populares, como AWS e Azure, para que você possa instrumentar rapidamente dependências de terceiros em seu aplicativo.
Basicamente, você pode escolher quais recursos precisa para seu aplicativo e o que deseja instrumentar. Você verá mais benefícios na abordagem "todos os anteriores", o que significa que você tem um monitoramento de ponta a ponta, também conhecido como observabilidade, para seus aplicativos.
Quais é a diferença entre o APM e a observabilidade?
APM é sobre o monitoramento do desempenho de um aplicativo, mas muitas arquiteturas modernas são complexas demais para monitorar e gerenciar apenas com isso. O APM fornece uma visão de alto nível de como um aplicativo está sendo executado, mas, para chegar à causa raiz de um problema em aplicativos maiores e complexos, é necessário usar uma abordagem mais técnica.
Observabilidade é sobre ter insights técnicos mais aprofundados sobre o estado de todo o sistema, independentemente do tamanho ou da complexidade dele. Embora o APM forneça métricas agregadas, você também precisa de outras ferramentas, como trace distribuído, para se aprofundar em seus dados.
O APM é uma parte da observabilidade, e a observabilidade é um superconjunto do APM. Com tantos aplicativos, é necessário ter uma solução de observabilidade completa.
Para saber mais sobre as diferenças entre APM e observabilidade, confira APM versus observabilidade.
Obtenha insights em tempo real com o New Relic APM 360
As ferramentas tradicionais de APM trazem desafios nesta nova era tecnológica. É por isso que você precisa atualizar para a próxima evolução do APM, o New Relic APM 360.
O New Relic APM 360 oferece insights em tempo real sobre métricas críticas de saúde em todo o stack e ciclo de vida de desenvolvimento do aplicativo em um só lugar. Com o APM 360, sua equipe pode evitar problemas com uma visão de dashboard, resolver bugs mais rapidamente e eliminar as lacunas de monitoramento com fluxos de trabalho guiados e recomendações de dados.
Perguntas frequentes: monitoramento do desempenho de aplicativos
Como é possível avaliar o desempenho do aplicativo?
Há várias maneiras de avaliar o desempenho de um aplicativo. As estratégias e ferramentas do APM alertam as equipes de desenvolvimento sobre erros e problemas antes que os clientes os percebam.
Com um software de APM, você pode avaliar o desempenho do seu aplicativo em um único dashboard. Estes são os métodos de avaliação mais comuns:
1. Monitoramento: colete dados sobre várias métricas de desempenho, como tempo de resposta, uso de recursos e taxa de erros, e analise esses dados para identificar tendências e problemas potenciais.
2. Teste de carregamento: simule cenários de uso reais, como muitos usuários acessando o aplicativo ao mesmo tempo, para verificar o desempenho do aplicativo sob pressão.
3. Criação de perfil de desempenho: analise o código do aplicativo para identificar gargalos ou áreas que poderiam ser otimizadas para um melhor desempenho.
4. Opinião do usuário: colete feedback dos usuários sobre a experiência deles ao usar o aplicativo, incluindo quaisquer problemas que possam ter encontrado.
5. Teste A/B: compare duas versões de um aplicativo para verificar qual tem melhor desempenho.
6. Monitoramento sintético: monitore o desempenho do aplicativo simulando as interações do usuário com o aplicativo em um ambiente controlado.
O que devo monitorar no APM?
Há várias métricas principais que você deve monitorar ao usar ferramentas de APM:
1. Tempo de resposta: quanto tempo uma solicitação leva para ser processada e uma resposta ser retornada.
2. Taxa de erros: o número de erros que ocorrem no aplicativo, como solicitações com falha e exceções sem tratamento.
3. Uso de recursos: a quantidade de recursos do sistema, como CPU e memória, que o aplicativo está usando.
4. Taxa de transferência: o número de solicitações com que o aplicativo consegue lidar em um determinado período.
5. Latência: o tempo que os dados levam para viajar do cliente até o servidor e de volta.
6. Experiência do usuário: a satisfação geral dos usuários com o aplicativo.
7. Métrica de negócios: o impacto do aplicativo nos negócios, como o número de transações, receita, taxa de conversão etc.
É importante monitorar essas métricas ao longo do tempo para detectar tendências e padrões, além de ser capaz de identificar quando e onde os problemas de desempenho ocorrem no aplicativo.
Também é importante observar que, dependendo dos requisitos específicos do seu aplicativo, você pode precisar monitorar métricas diferentes ou adicionais.
Como é possível avaliar o risco de segurança do aplicativo em produção?
Vulnerabilidades de dia zero são riscos previamente desconhecidos que podem permitir que atores maliciosos explorem aplicativos e serviços em produção para roubo de dados, extorsão ou interrupção dos negócios.
Para avaliar continuamente os riscos de aplicativos, utilize o Gerenciamento de vulnerabilidades da New Relic para identificar e priorizar vulnerabilidades por aplicativo ou serviço e, em seguida, teste se essas vulnerabilidades são realmente exploráveis usando o teste de segurança de aplicativo interativo (IAST) da New Relic.
- Avaliação de vulnerabilidades: monitore bibliotecas de código aberto dentro de aplicativos e serviços em busca de exposições comuns a vulnerabilidades (CVEs).
- Análise de impacto: filtre vulnerabilidades por gravidade, contagem, escopo, origem e passos para remediação a fim de priorizar os esforços.
- Auditoria da área de superfície das vulnerabilidades: monitore a vulnerabilidade de todas as suas entidades, bibliotecas, número de serviços que utilizam uma biblioteca vulnerável, vulnerabilidades ativas e quando foram vistas pela primeira e última vez.
- Teste de prova de exploração: simule um ataque do mundo real para testar se as vulnerabilidades de um aplicativo são realmente exploráveis por um ator malicioso.
Quais são os benefícios das soluções de APM?
Há muitos benefícios em usar uma solução de gerenciamento de desempenho de aplicativos.
- Insights aprimorados e tempo de resposta mais rápido: as soluções de APM oferecem a DevOps e engenheiros insights melhores sobre todos os aspectos de um aplicativo. Se ocorrer um problema, as equipes terão mais insights sobre a causa raiz dos problemas, o que lhes permitirá agir mais rapidamente para resolvê-los.
- Melhor experiência do usuário: ao monitorar o desempenho de um aplicativo, o APM pode fornecer insights sobre como melhorar a experiência do usuário. Isso ajuda as organizações a garantir que os aplicativos estejam funcionando sem problemas e proporcionando uma experiência do usuário positiva.
- Maior confiabilidade do aplicativo: o software de APM pode detectar e diagnosticar problemas, como tempos de resposta lentos ou altas taxas de erros, que afetam a confiabilidade de um aplicativo. Ao resolver essas questões, a confiabilidade de um aplicativo é elevada.
- Melhor desempenho do aplicativo: o APM economiza dinheiro ajudando as organizações a identificar e tratar problemas de desempenho antes que causem mais danos, como período de inatividade do sistema e perda de receita.
- Melhor desempenho dos negócios: o software de APM fornece informações detalhadas sobre como o aplicativo está afetando os negócios, como o número de transações, a receita, a taxa de conversão e outras métricas de negócios importantes. Essa informação pode ser usada para otimizar o aplicativo e melhorar o desempenho geral dos negócios.
As soluções de APM ajudam as organizações a garantir que os aplicativos estejam funcionando sem problemas, fornecendo uma boa experiência do usuário e afetando positivamente os negócios.
Como é possível monitorar o desempenho do aplicativo em produção?
Há várias maneiras de monitorar o desempenho do aplicativo em produção. O desempenho do aplicativo em produção combina diversos fatores, incluindo:
Monitoramento de Browser: colete dados sobre o desempenho do aplicativo enquanto está sendo utilizado pelos usuários reais. Isso pode ser feito usando tags no JavaScript que são incorporadas ao código do aplicativo para coletar dados no lado do cliente ou usando servidores proxy para coletar dados no lado do servidor.
Monitoramento sintético: simule as interações do usuário com o aplicativo em um ambiente controlado, como um servidor de teste, para medir o desempenho.
Análise de logs: analise arquivos de log gerados pelo aplicativo para identificar problemas de desempenho, como tempo de resposta lento e taxa de erros alta.
Instrumentação do aplicativo: adicione código ao aplicativo para coletar dados sobre métricas de desempenho, como tempo de resposta e uso de recursos, que podem ser usadas para monitoramento.
Monitoramento de infraestrutura: colete dados sobre o desempenho da infraestrutura subjacente, como servidores e dispositivos de rede, na qual o aplicativo está sendo executado.
Ferramentas de terceiros: há várias ferramentas de terceiros que podem ser usadas para monitoramento do desempenho do aplicativo em produção, como ferramentas de APM.
O APM ajuda a monitorar todos esses fatores em um dashboard, assim você não precisa executar vários testes diferentes para conseguir uma visão holística do ambiente do aplicativo.
Próximos passos
Comece a usar o monitoramento do desempenho de aplicativos. Experimente já o New Relic.
O melhor modo de saber mais sobre APM e observabilidade é tendo experiência prática com uma solução de observabilidade. Cadastre-se e use o New Relic grátis para começar. Em seguida, aprofunde-se na documentação sobre APM.
As opiniões expressas neste blog são de responsabilidade do autor e não refletem necessariamente as opiniões da New Relic. Todas as soluções oferecidas pelo autor são específicas do ambiente e não fazem parte das soluções comerciais ou do suporte oferecido pela New Relic. Junte-se a nós exclusivamente no Explorers Hub ( discuss.newrelic.com ) para perguntas e suporte relacionados a esta postagem do blog. Este blog pode conter links para conteúdo de sites de terceiros. Ao fornecer esses links, a New Relic não adota, garante, aprova ou endossa as informações, visualizações ou produtos disponíveis em tais sites.