Se voltarmos um pouco no tempo chegamos ao ano de 2006, quando a Itália venceu a Copa do Mundo de Futebol. Naquela época, era inovador o uso do monitoramento sintético para medir o tempo de resposta das transações ponta a ponta a partir de Pontos de Presença (PoPs) fixos globalmente. Nos questionávamos sobre como mudar de modos reativos para proativos e conseguir gerenciar problemas de desempenho de aplicativos.
Avançando para os dias de hoje, ainda discutimos sobre o gerenciamento de desempenho proativo para o reativo. A notória agulha no palheiro se tornou a agulha em milhares ou mesmo milhões de palheiros. Vejam só. As abordagens de DevOps e os ciclos de desenvolvimento ágeis que melhoraram o alinhamento com as iniciativas de negócios, também aumentaram drasticamente a taxa de mudança e o risco associado.
Arquiteturas dinâmicas e distribuídas que dependem de microsserviços, contêineres, máquinas virtuais, APIs e serviços em nuvem tornam o monitoramento do ecossistema de aplicativos, a solução de problemas e o entendimento das dependências cada vez mais desafiadoras. Os componentes são constantemente girados para cima e para baixo ou movimentados, dificultando o diagnóstico de problemas especialmente intermitentes ou ambientais.
Estabelecer e rastrear SLAs se torna mais difícil, já que os contratos com provedores não levam em conta a última milha. Abaixo, abordo cinco problemas comuns de desempenho de aplicativos e como podemos abordá-los de maneira proativa, além de apresentar novas maneiras de abordar problemas antigos.
Problema 1: demora para solucionar incidentes em ambientes complexos e distribuídos
O tempo de inatividade e o baixo desempenho de aplicativos críticos têm impacto direto nos negócios. Quando ocorrem problemas de aplicativos, você está pressionado para detectar, isolar e corrigir o problema rapidamente. Mas, com ferramentas específicas de domínio em silos, isso pode levar dias – se não semanas – para isolar e corrigir problemas. Para resolver esses erros complexos e intermitentes é essencial ter todos os dados ao seu alcance. O Big Data do APM (ou seja, todas as transações e metadados do usuário) pode fornecer o contexto que as estratégias de amostragem de transação podem perder. É especialmente útil para solucionar ocorrências em ambientes dinâmicos e distribuídos, como aqueles que utilizam contêineres, microsserviços, máquinas virtuais e serviços de nuvem pública.
Problema 2: você descobre problemas de desempenho de seus usuários
As equipes de TI e DevOps geralmente descobrem problemas de desempenho dos usuários finais depois que o negócio já foi afetado. No entanto, essas equipes precisam detectar as situações de maneira proativa, de modo que estejam trabalhando para isolar e corrigi-las antes que o negócio seja afetado. Embora os usuários internos possam ser insensíveis a esses problemas crônicos, os usuários externos normalmente têm uma seleção maior de fornecedores, sites e aplicativos e podem simplesmente mudar para a concorrência. Para usuários internos e externos, esses problemas podem ter um impacto significativo nos negócios e geralmente só são descobertos depois que os usuários finais relatam uma ocorrência. É por isso que é importante avaliar e monitorar todos os seus aplicativos essenciais aos negócios (Web, celular, etc.) da perspectiva do usuário final e capturar todas as transações em todos os tipos de dispositivos. Dessa forma, você pode detectar problemas antes que os fluxos de receita ou a reputação da marca sejam afetados.
Problema 3: você não consegue descobrir a causa de problemas de desempenho recorrentes ou persistentes
Problemas de desempenho intermitentes e crônicos impactam negativamente a satisfação e a produtividade do usuário final e impedem que as equipes de DevOps se concentrem em novas iniciativas. É aí que a análise – incluindo aprendizado de máquina e inteligência artificial (IA) – é alcançada. Ao contrário dos humanos, eles podem identificar anomalias e padrões em petabytes de dados do APM para revelar rapidamente os problemas mais importantes em conjuntos de dados extremamente grandes. Além disso, novos tipos de visualização podem ajudar você a entender melhor as dependências de aplicativos subjacentes, para que sua equipe possa se concentrar nas correções específicas que terão maior impacto em seus negócios.
Problema 4: novas iniciativas de TI, novos problemas de desempenho de aplicativos
Quando as empresas migram seus data centers para a nuvem, esperam melhorar a flexibilidade, o custo e o controle. Eles não esperam impactar negativamente o desempenho do aplicativo. Ao lançar novos aplicativos ou expandir as implantações existentes, é essencial garantir que o desempenho necessário seja entregue. Também é essencial gerenciar e prever os efeitos das alterações de infraestrutura no funcionamento do aplicativo. No entanto, as empresas geralmente se deparam com problemas imprevistos e não têm a capacidade de definir a atividade da linha de base e destacar os desvios. É por isso que é importante monitorar o aplicativo de ponta a ponta antes, durante e depois da migração, para gerenciar expectativas e minimizar problemas que podem surgir ao migrar para a nuvem ou adotar novas tecnologias.
Problema 5: Silos vs Colaboração
O desempenho não é de responsabilidade de um departamento (Infraestrutura ou Desenvolvimento) e sempre tem grande impacto sobre a operação de TI, pessoal de desenvolvimento de aplicativos e os proprietários de empresas, devido a nova dependência de TI como canal de negócios. Ter bases para o fornecimento preciso de dados sobre erros para a comunidade de TI, facilita o entendimento entre o departamento de operação e desenvolvimento em prol do sucesso da iniciativa/empresa. Melhorar a capacidade de comunicação e resolução é muito importante entre os dois mundos. Mesmo em relação aos erros, é fundamental sempre buscar evoluir os conceitos e procedimentos de desenvolvimento ágil e sua utilização.
Rosano Moraes, vice-presidente da Riverbed para a América Latina.