À medida que continuamos a fragmentar o data center desintegrando aplicativos e as redes das quais eles dependem, um aforismo empresarial permanece verdadeiro: a velocidade é fundamental. O desempenho continua sendo uma preocupação empresarial que afeta tudo, desde as vendas até a produtividade, afetando e, às vezes, até mesmo o lucro líquido.
Um artigo recente no DZone, Quão rápidos são os aplicativos da Web em 2016, aprofundou-se em alguns detalhes com relação ao desempenho, observando que “para um aplicativo da Web típico, 4,2% das transações são abandonadas”. Isso se baseia em “cinco bilhões de interações de usuários com 500 aplicativos diferentes baseados na web”.
Como isso se traduz em dólares e impacta o lucro ou a produtividade depende do modelo de negócio, é claro. Isso pode representar milhões ou bilhões de dólares, ou horas perdidas e clientes irritados com o aumento do tempo de chamadas.
Independentemente disso, o desempenho continua sendo uma consideração significativa tanto para desenvolvedores quanto para operações. E por operações quero dizer todas as operações – infraestrutura, rede, armazenamento e segurança. Nossa pesquisa mais recente sobre o estado da entrega de aplicativos continuou a reforçar a atitude de todas as funções de TI de que o desempenho é essencial. Era o menos provável de ser abandonado em troca de melhor segurança (apenas 9% fariam tal acordo) e foi citado por 14% dos entrevistados como um desafio significativo enfrentado em implementações de múltiplas nuvens.
Apesar disso, apenas 38% indicaram que empregam serviços de aceleração de aplicativos agora, e apenas 22% planejam implementar no próximo ano. Um número surpreendente de 40% disseram que não tinham planos de implantar ou usar aceleração de aplicativos.
Isso pode ocorrer porque a percepção do que “aceleração de aplicativo” implica é um tanto nebulosa. E não por causa da "nuvem", mas porque ela evoluiu e se transformou ao longo dos anos, de QoS para atualização delta baseada em navegador e caches para os chamados front ends de aplicativo (AFE), que são na realidade proxies especializados com recursos muito focados em desempenho.
Na maioria das vezes, quando pensamos em “aceleração de aplicativos”, pensamos em compactação e armazenamento em cache, minificação e otimização de imagens. Não pensamos em otimizações de protocolo como parte de toda a mentalidade de “Precisamos do Warp 9, Scotty” que permeia as expectativas empresariais e dos usuários hoje. Mas deveríamos.
Ah, estamos vendo o offloading de protocolos sendo muito usado ultimamente. No decorrer de 2015, o uso do offload SSL do lado do cliente (o lado que gerencia o HTTP seguro com os usuários) aumentou de pouco menos de 80% para quase 100%. Isso não é surpreendente, dada a atenção crescente dada às comunicações seguras com esforços como “Let's Encrypt!” e “SSL Everywhere”. SSL/TLS afeta o desempenho (e não de um jeito bom), especialmente à medida que a carga aumenta. Transferir para um proxy capaz faz sentido, e estamos vendo organizações fazendo exatamente isso para compensar o impacto no desempenho de tornar tudo seguro.
Mas não estamos vendo um aumento semelhante no back-end, no lado do servidor, da equação. O uso do TCP Multiplexing para melhorar o desempenho (e simultaneamente aumentar a capacidade dos recursos) não mudou muito no ano passado. Pouco menos da metade (cerca de 46% consistentemente) das organizações estão usando essa técnica de otimização desconhecida.
O que é assustador quando você considera que muitas dessas mesmas organizações estão atualmente enfrentando a febre dos contêineres.
Por que é assustador? Deixe-me dizer o porquê... Embora seja inteiramente possível que a virtualização tenha permitido que as organizações ajustassem a pilha TCP de cada instância para garantir o mais alto desempenho possível por aplicativo, a chegada dos contêineres ameaça esse modelo. Isso ocorre porque os contêineres compartilham uma única pilha de rede. O ajuste de um aplicativo implantado em um contêiner não garante a melhor configuração para um aplicativo diferente em um contêiner diferente no mesmo host .
Como as otimizações baseadas em TCP, como a multiplexação TCP, operam na camada de protocolo, elas são como texugos-do-mel. Eles não se importam se o aplicativo está em um contêiner, uma máquina virtual ou disponível em uma plataforma web. Eles otimizarão ao máximo essa conexão e melhorarão o desempenho, independentemente de como ou onde o aplicativo for implantado. Esses serviços se importam apenas com o protocolo e aproveitam a separação do lado do cliente do lado do servidor para garantir ainda mais que o lado do cliente seja otimizado para o cliente e o lado do servidor para o aplicativo. Isso significa melhorias de desempenho vezes dois.
Os serviços e técnicas tradicionais de aceleração de aplicativos são fantásticos, não me entenda mal, e como você pode ver no gráfico colorido acima, as organizações aproveitam todos eles para melhorar o desempenho de seus aplicativos. Mas há mais que pode ser feito e, como os dados de desempenho mencionados acima indicam, mais do que deveria ser feito.
É uma boa ideia analisar seu proxy (aquele que você provavelmente usa apenas para balanceamento de carga) e descobrir se ele pode fazer mais pelo desempenho do seu aplicativo do que você está usando atualmente.
Descubra como o F5 torna os aplicativos mais rápidos, inteligentes e seguros.