Pode-se dizer que o desempenho dos aplicativos é a própria razão da existência de muitos profissionais de TI. Afinal, para a maioria das organizações, os aplicativos são a questão central. Sem eles, não há produtividade dos funcionários. Não há receita. Por isso, o gerenciamento do desempenho de aplicativos (APM) deve ser um dos principais componentes dos planos e processos de todas as organizações de TI.
Infelizmente, existe muita confusão quanto ao termo APM, o que dificulta a devida avaliação das soluções de APM pelas organizações. Essa confusão se origina, em grande parte, do fato de várias firmas de analistas e outros formadores de opinião no setor terem uma definição muito restrita do que é o APM. Entretanto, na verdade existem várias maneiras de monitorar o desempenho dos aplicativos.
As duas maneiras que eu gostaria de mencionar aqui são o que costumo chamar de gerenciamento do desempenho da interface de aplicativos e monitoramento de instrumentação de código de bytes de aplicativos. Vamos começar com descrições do que cada abordagem faz e como.
Gerenciamento do desempenho da interface de aplicativos
Este tipo de APM interage com o aplicativo e com os componentes a ele relacionados para avaliar o desempenho. Podemos categorizar o tipo de dados que ele reúne em duas áreas:
- O que podemos observar do comportamento do aplicativo (por exemplo, tempo de resposta geral)
- O que o aplicativo pode nos informar sobre si mesmo (por exemplo, tempos de espera, comprimento da fila)
Isso não é muito diferente do que um médico clínico faz com seus pacientes. O médico pode observar se o paciente está bem-disposto e ativo ou indiferente e apático (veja o primeiro item acima). Também pode usar o estetoscópio para auscultar os pulmões e o coração do paciente, ou um monitor de pressão arterial para obter mais dados. E, logicamente, também pergunta ao paciente o que ele sente e quais são os sintomas (veja o segundo item acima). A partir desses dados, ele pode determinar com eficácia onde ou qual é o problema e o que é necessário para tratá-lo.
No contexto dos aplicativos, esse tipo de APM permite que as equipes de operações tenham uma visibilidade do desempenho do aplicativo quase em tempo real, o que inclui alertas antes que problemas resultem em tempo de inatividade ou outros impactos negativos para os usuários finais. Ele também oferece a capacidade de solucionar problemas e determinar sua causa-raiz rapidamente. Depois que a causa-raiz tiver sido identificada, uma variedade de medidas corretivas pode ser tomada para melhorar o desempenho, incluindo alteração de configurações ou adição/movimentação de recursos.
Este é o tipo de APM que, de acordo com a 451 Research, os três fornecedores dos produtos mais implantados oferecem, o que inclui o SolarWinds Server & Application Monitor e ferramentas da HP e da Microsoft.
Monitoramento de instrumentação de código de bytes de aplicativos
Esta abordagem faz exatamente o que seu nome sugere – insere uma instrumentação em diversas partes do código do aplicativo para permitir determinar os tempos de processamento de transações, à medida que a transação passa pelos diferentes componentes do aplicativo, dentro do próprio código do aplicativo. A principal categoria de dados fornecida por esta abordagem é o tempo que leva para cada parte do código do aplicativo processar uma transação e o tempo de processamento agregado das transações de todo o aplicativo. A instrumentação de código de bytes ajuda a isolar partes do código ou componentes do aplicativo que estejam causando degradação do desempenho, de modo que quaisquer problemas com o código possam ser identificados e corrigidos.
Estendendo nossa analogia médica, diferentemente de um médico clínico geral, esta abordagem se assemelha à intervenção de um cirurgião, que atua fisicamente no corpo do paciente para verificar o que há de errado e tratar o problema.
Diferentes abordagens para diferentes situações
Da mesma forma como existem diferentes situações em que um paciente consulta um médico clínico geral em vez de um cirurgião, o mesmo se aplica às diferentes abordagens de APM. Se você for um desenvolvedor ou profissional de DevOps e tiver a capacidade de acessar o código do aplicativo para fazer alterações, a abordagem de instrumentação de código de bytes lhe fornecerá informações valiosas. No entanto, se precisar entender a saúde ou a integridade geral de um aplicativo e, então, solucionar e diagnosticar problemas que afetam o desempenho, uma ferramenta de APM do tipo de interface de aplicativo será mais valiosa neste caso. A abordagem de interface de aplicativo também é mais indicada para gerenciar aplicativos em pacotes, cujo código você pode não conseguir alterar, ou aplicativos personalizados, quando você faz parte da equipe de operações e não da de desenvolvimento.
Em suma, todos precisam de um clínico geral, mas nem todos precisam de um cirurgião. Um médico certamente não deveria iniciar um diagnóstico abrindo um paciente antes de reunir outros dados com métodos menos invasivos. Da mesma forma, praticamente todo mundo precisa de APM do tipo de gerenciamento do desempenho da interface de aplicativos, mas se seu código precisar de cirurgia, a abordagem de instrumentação de código de bytes pode ser um aquisição essencial.