Como a performance das aplicações pode afetar o sucesso dos seus negócios
Quando mais de 3,2 bilhões de pessoas no mundo usam a internet como uma das suas principais fontes de consumo, é essencial estar presente nesse ambiente, principalmente para quem faz do varejo o seu negócio.
Porém estar presente não é o suficiente e cada vez mais as empresas investem em pesquisas de experiência e satisfação do usuário para melhorar o seu atendimento e consequentemente o número de vendas.
Em 2012, A Amazon divulgou uma pesquisa que esclarece os motivos disso, as seguintes informações foram apresentadas nessa pesquisa:
- O tempo esperado para a exibição de uma página na web é de 2 segundos;
- 57% dos consumidores abandonam um site se a sua exibição leva mais de 3 segundos;
- 80% desses consumidores nunca mais retornam após essa experiência.
Essa pesquisa revelou à Amazon o quanto cada segundo de espera pelos seus usuários custa para a empresa.
O custo de 1 segundo a mais no tempo de exibição da Amazon é de US$ 1,6 Bilhão, por ano.
Ou seja, se por qualquer motivo alguém levar mais de 3 segundos para ver o produto que procura na Amazon, essa pessoa não vai apenas comprar em outro lugar como pode nunca mais voltar para comprar algo na Amazon. O impacto negativo pode ser muito maior se essa pessoa divulgar a má experiência em uma rede social.
Mas o que é a performance de uma aplicação?
Performance é a capacidade de realizar tarefas ou trabalhos de modo eficaz e com o mínimo de desperdício.
No caso de aplicações, podemos dizer que é atender a maior quantidade de requisições simultaneas com baixo tempo de resposta e integridade nas informações.
Ao avaliar a performance de uma aplicação 3 informações se destacam:
- Tempo final de resposta;
- Número de Requisições;
- Consistência das informações.
Essas informações devem ser coletadas em tempo de execução, ou seja, enquanto a aplicação é utilizada pelos clientes, no ambiente de Produção e essa análise tem como resultado uma série de métricas que dizem como é o comportamento da aplicação em cenários diferentes, permitindo corrigir e até mesmo prever determinados gargalos.
Para direcionar o que fazer com essas métricas foi criada uma metodologia chamada de Application Performance Management, ou APM.
APM é a arte de gerenciar a perfomance e disponibilidade de aplicações.
A APM distribui a análise das aplicações em 5 fases:
- Monitoria da experiência final do usuário(ativa e passiva);
- Arquitetura e modelagem da aplicação;
- Mapeamento das transações de negócio(definidas pelo usuário);
- Monitoria dos componentes da aplicação(Profiler de tecnologia);
- Relatórios e análises.
Esses passos tem como objetivo cobrir todas as áreas que envolvem uma aplicação, por exemplo:
- O hardware onde essa aplicação é executada;
- As máquinas virtuais/containers/web servers onde a aplicação é hospedada;
- O comportamento da aplicação em si;
- As comunicações da aplicação e suas dependências(serviços externos ou databases, por exemplo).
O príncipio da análise: conhecer o APDEX
O ponto de partida para a análise de uma aplicação é o APDEX(Application Performance Index), um índice que quantifica a satisfação dos usuários pelo tempo de resposta de uma aplicação.
O APDEX vai de 0 à 1, sendo 0 uma aplicação com baixa performance e 1 uma performance excelente e é calculado com base em variáveis obtidas em runtime.
Uma das variáveis mais importantes nessa fórmula é o tempo de resposta estimado para o usuário final ou T(que no caso da Amazon é de 2 segundos, no browser) e essa métrica deve ser configurada por aplicação, de acordo com a expectativa dos usuários.
Sendo assim a qualificação das requisições seguirá o tempo definido como base, e será apresentada da seguinte maneira:
- Requisições satisfatórias: Transações que respondem até T;
- Requisições toleráveis: Transações que respondem em até 4T(4*T, ou 8 segundos, no caso da Amazon);
- Requisições frustradas: Transações que respondem acima de 4T ou retornam Exceção ao usuário final.
Para exemplificar, vamos supor que na análise realizada pela Amazon durante um período de 3 horas a aplicação deles recebeu 1000 requests que foram atendidos da seguinte forma:
- 800 requisições responderam em menos de 2 segundos;
- 140 requisições responderam entre 2 e 8 segundos;
- 60 requisições responderam depois de 8 segundos ou não responderam.
Sendo assim, o resultado desse calculo é de 0,87 que é considerado excelente quando falamos do APDEX.
Entretanto, ainda há uma série de informações que apenas a análise do tempo de resposta e quantidade de transações executadas não apresentam, como por exemplo os motivos pela demora das outras 200 requisições no intervalo analisado.
Ferramentas de APM
O grande trunfo para usar APM e ter seu fluxo inteiramente coberto, é combinar o processo com uma boa ferramenta, que além de facilitar a análise e implementação das melhorias de performance, apresenta de maneira concisa os dados obtidos.
A escolha da ferramenta ideal para seu negócio depende de alguns fatores, como por exemplo a tecnologia da aplicação à ser monitorada e o modelo de infraestrutura utilizado. Após a escolha da ferramenta é importante levar em consideração os dados que serão analisados, já que grande parte das ferramentas permite configurar alertas e pequenas ações para instabilidades ou alterações no ambiente monitorado.
As ferramentas com maior adesão de mercado, são:
Os pontos fortes dessas ferramentas são suas análises baseadas na experiência do usuário e alto número de indicadores para os eventos apresentados.
APM na prática
Na FCamara já passamos por vários projetos onde pudemos comprovar a eficácia da APM, em tecnologias que vão desde PHP até .NET, por meio do processo e de uma ferramenta chamada NewRelic, conseguimos estabilizar ou otimizar as aplicações em pouco tempo e com alterações que não influenciavam o negócio.
É importante dizer que a utilização de APM não deve ser apenas sazonal, é crucial melhorar continuamente a experiência do usuário, velocidade, funcionalidade e confiabilidade de uma aplicação para garantir o sucesso dos seus negócios.