Este blog marca o início de uma nova série sobre exemplos reais de problemas enfrentados pelas empresas e descreve como a App Delivery Network (ADN) da Volterra soluciona os problemas apresentados. Este artigo específico detalha um dos principais desafios de desempenho de aplicações web que empresas on-line do mundo todo enfrentam diariamente. Esse desafio se torna ainda maior com a maioria dos consumidores trabalhando em casa. Explico como a Volterra pode ajudar as empresas a eliminar a distância de suas aplicações web, obtendo uma melhoria de 77% no desempenho sem precisar reescrevê-las.
O que é o desempenho de aplicações web?
O desempenho de uma aplicação web geralmente é medido pelo tempo necessário para que o conteúdo da página fique visível para o usuário final. Os desenvolvedores web usam diversas métricas para medir o desempenho de suas aplicações web, como First Contentful Paint, Largest Contentful Paint ou Document Complete. Neste blog, usei a métrica “Document Complete” para avaliar o desempenho da minha aplicação web. Os desenvolvedores web medem essas métricas usando ferramentas como Web Page Test, Google Lighthouse ou Rigor.
Por que o desempenho de aplicações web é importante?
Uma pequena degradação no desempenho de uma aplicação web tem um enorme impacto na experiência do usuário e, consequentemente, nas vendas realizadas pelo portal on-line. A gigante do comércio eletrônico Amazon informou que uma degradação de 1 segundo no desempenho da aplicação resulta em uma perda de US$ 1,6 bilhão em receita. Um impacto econômico semelhante é observado por empresas on-line de diversos setores, conforme relatado pela Akamai neste relatório um pouco mais antigo. A Google e a Microsoft relatam números semelhantes de impacto econômico.

Esses dados confirmam claramente que o desempenho de aplicações web é uma das principais prioridades das empresas que atuam on-line.
Qual é o desafio?
Vamos considerar um exemplo específico de uma empresa on-line do setor de comércio eletrônico. Muitas empresas de comércio eletrônico hospedam suas aplicações web em um ou poucos data centers, que não estão presentes em todos os países onde seus usuários vivem. Quando o usuário está em um país ou região diferente daquele onde fica o data center, a alta latência da rede entre o usuário e o data center faz com que o carregamento das páginas leve de 6 a 12 segundos. Como mencionado acima, quando o tempo de carregamento ultrapassa 5 segundos, a probabilidade de abandono aumenta para 90%.
Vamos analisar em detalhes o carregamento de uma página de aplicativo web, conforme mostrado na figura 2

- Primeiro, é estabelecida uma sessão SSL segura, o que exige a troca de 6 mensagens entre o navegador do usuário e o aplicativo web.
- Em seguida, o aplicativo web normalmente usará os cookies do navegador do usuário para determinar se ele possui uma conta com o fornecedor de comércio eletrônico.
- Com base no cookie, se o usuário tiver uma conta, será exibida uma página de login; caso contrário, será exibida uma página para finalizar a compra como visitante.
Apenas para estabelecer a sessão SSL segura, são necessárias seis mensagens que, quando transmitidas por conexões de alta latência (possivelmente transatlânticas ou transpacíficas), certamente afetam o tempo de carregamento da página e, consequentemente, resultam em uma experiência ruim para o usuário.
Como a Volterra ADN pode melhorar o desempenho dos aplicativos?
Há muitas técnicas para melhorar o desempenho de aplicações web por meio da otimização da aplicação, como compactar imagens ou otimizar dependências para reduzir o tempo de carregamento das páginas. Muitas vezes, essas otimizações podem não ser possíveis devido aos requisitos de negócios que orientam o design da aplicação. Mesmo que sejam possíveis, talvez não sejam uma opção viável, pois os desenvolvedores que criaram a aplicação podem não fazer mais parte da organização ou estar ocupados desenvolvendo novos serviços. Por isso, as equipes de DevOps de organizações de comércio eletrônico valorizam soluções que melhoram o desempenho das aplicações sem exigir alterações nelas.
A Volterra oferece dois produtos, VoltMesh e VoltStack, que, combinados com a ADN da Volterra, podem melhorar o desempenho das aplicações em até 75% (veja a demonstração na próxima seção). O VoltMesh da Volterra é um produto de rede e segurança distribuído globalmente que, quando configurado na ADN da Volterra, também oferece recursos de aceleração de aplicações. O VoltStack da Volterra oferece implantação distribuída de aplicações e gerenciamento do ciclo de vida, permitindo que os usuários transfiram partes de suas aplicações para a ADN da Volterra a fim de melhorar ainda mais o desempenho.
O VoltMesh e o VoltStack melhoram o desempenho das aplicações web de empresas de comércio eletrônico das três maneiras a seguir
Solução 1: terminação SSL (também conhecida como descarregamento de TLS) na ADN da Volterra
A solução mais simples para melhorar o desempenho de aplicações web é realizar a terminação da sessão SSL na ADN Global da Volterra. O conjunto de seis mensagens necessárias para estabelecer a sessão SSL é enviado localmente para a borda da rede global no próprio país, sem passar por links transatlânticos ou transpacíficos. Haverá uma sessão SSL persistente entre o site remoto da rede global da Volterra e o servidor de origem, melhorando ainda mais o desempenho. Isso pode ser visualizado conforme mostrado na Figura 3.

Solução 2: transfira o processamento sensível à latência, como o processamento de cookies, para a Volterra ADN
Para melhorar ainda mais o desempenho, as empresas podem implantar na ADN as partes de seus aplicativos que são sensíveis à latência. Exemplos de partes de um aplicativo web sensíveis à latência incluem o processamento de cookies, GraphQL ou backend-for-frontend. Em uma empresa de comércio eletrônico, por exemplo, normalmente os cookies são processados para determinar qual página deve ser exibida ao usuário: se ele tiver uma conta, exibe-se a página de login; caso contrário, exibe-se uma página para visitantes. O processamento de cookies em nossa ADN melhora drasticamente o desempenho em comparação com o processamento em data centers centralizados ou na nuvem, do outro lado do mundo. Isso pode ser visualizado conforme mostrado na Figura 4.

Solução 3: Mover o próprio front-end do aplicativo web (por exemplo, o catálogo de produtos) para a borda, ou seja, para a loja física
Muitos varejistas, como Macy’s, Home Depot e Target, também têm lojas físicas, onde os consumidores consultam o catálogo de produtos on-line para verificar a localização dos itens e acessar ofertas e cupons. Para melhorar a experiência do usuário, esses varejistas poderiam optar por transferir apenas o front-end de sua aplicação web para a infraestrutura computacional da loja. Todos os demais componentes da aplicação, como os bancos de dados, poderiam permanecer no data center de back-end, pois não seriam acessados com tanta frequência quanto o catálogo de produtos no front-end. Isso pode ser visualizado conforme mostrado na Figura 5.

Princípios arquiteturais fundamentais a serem considerados em qualquer solução
Esse problema é, fundamentalmente, uma questão de computação distribuída em várias nuvens heterogêneas. As equipes de DevOps podem optar por desenvolver uma solução própria, combinando soluções isoladas de diferentes fornecedores, como provedores de nuvem pública, de CDN ou de edge computing, ou adquirir uma solução pronta de fornecedores de plataformas de serviços de nuvem distribuída. Os desafios são destacados na Figura 6.

Estes são os principais princípios arquiteturais que as equipes de DevOps devem considerar ao avaliar qualquer solução.
- Ambiente de execução de aplicações consistente em várias nuvens: A aplicação das equipes de DevOps será distribuída entre a nuvem de back-end, que pode ser um data center privado ou uma nuvem pública, os locais de edge computing e as lojas físicas — todos eles podendo ter ambientes de execução de aplicações completamente diferentes. As equipes de DevOps devem considerar seriamente soluções que utilizem o Kubernetes para oferecer um ambiente de execução de aplicações consistente em todas essas nuvens distribuídas. O Kubernetes uniformiza as nuvens e facilita a movimentação de partes das aplicações entre elas.
- Roteamento de tráfego por proximidade geográfica: Como o front-end da aplicação pode ser implantado em diferentes locais — na nuvem, na borda ou na borda de uma loja física —, qualquer solução deve garantir que o tráfego do usuário seja direcionado para o local mais próximo em que o serviço de front-end esteja implantado. Além disso, nenhuma solução considerada deve exigir que as equipes de DevOps alterem as políticas de roteamento da internet.
- Balanceamento de carga global: Qualquer solução considerada deve oferecer balanceamento de carga global, pois os serviços de back-end podem estar em vários locais ao redor do mundo.
- Políticas uniformes de segurança de aplicações e de rede em várias nuvens: Embora a localização dos componentes da aplicação possa variar de acordo com a região, qualquer solução considerada deve permitir a aplicação de uma política uniforme de segurança de aplicações e de rede, independentemente da nuvem em que o serviço de front-end esteja implantado.
- Observabilidade centralizada em vários ambientes de nuvem e em toda a conectividade de aplicações e redes: Em um ambiente de nuvem distribuída, é extremamente difícil solucionar problemas em aplicações e na conectividade entre vários ambientes de nuvem. Qualquer solução considerada deve oferecer observabilidade centralizada da conectividade, da segurança e das implantações de aplicações em vários ambientes de nuvem.
Resultados alcançados pelas soluções da Volterra
Configuração do teste
A configuração de teste descrita a seguir foi usada para demonstrar as melhorias de desempenho proporcionadas por cada uma das soluções Volterra apresentadas na seção anterior:
- O aplicativo web utilizado foi o Online Boutique, um aplicativo de demonstração de microsserviços nativo da nuvem do Google. O aplicativo web consiste em 11 microsserviços, conforme mostrado na Figura 7

- O desempenho do aplicativo web foi medido usando o webpagetest.org
- A métrica usada para determinar o desempenho do aplicativo web no webpagetest.org foi “Document Complete”
- A empresa é uma companhia europeia de comércio eletrônico com data centers localizados em Paris
- O usuário (ou cliente) está sempre localizado em São Francisco.
Cenário e resultados do teste
Os quatro cenários a seguir foram testados, e as melhorias de desempenho são descritas para cada um deles.
Cenário de referência: primeiro, estabeleci uma referência para o desempenho da aplicação web com o usuário em São Francisco e a aplicação web sendo executada inteiramente no data center de Paris, conforme mostrado na Figura 8. O desempenho da aplicação web no cenário de referência foi medido em 3,5 segundos.

Cenário de teste da solução 1: No teste da solução 1, o usuário ainda está em São Francisco e o aplicativo web continua sendo executado no data center de Paris. No entanto, a sessão SSL é encerrada no proxy reverso VoltMesh, executado na Volterra ADN em San Jose. Esse cenário é mostrado na Figura 9.

O VoltMesh cria automaticamente uma sessão SSL persistente entre o proxy reverso em execução no PoP de San Jose e a aplicação web em execução no data center de Paris. O desempenho da aplicação web melhorou para 2,9 segundos, uma melhoria de ~18%.
Cenário de teste da solução 2: No teste da solução 2, o front-end e o microsserviço de moeda são implantados na ADN em San Jose. Os demais microsserviços e bancos de dados continuam sendo executados no data center de Paris. Esse cenário é mostrado na Figura 10.

A justificativa para mover apenas os microsserviços de front-end e de moeda é que somente esses microsserviços são utilizados durante a navegação casual dos usuários. O desempenho da aplicação web melhora para 2 segundos, uma melhoria de 31% em relação aos resultados da Solução 1.
Cenário de teste da Solução 3: No teste da Solução 3, o front-end e o microsserviço de moeda foram implantados em um Intel NUC convencional (4 núcleos virtuais) na borda de uma loja física.

A justificativa para mover apenas os microsserviços de front-end e de moeda é que somente esses microsserviços são utilizados durante a navegação casual dos usuários na borda da loja física. O desempenho do aplicativo web melhora para 0,8 segundo, uma melhoria de 60% em relação aos resultados da Solução 2.
Resumo dos resultados e valor econômico
Um resumo dos resultados dos testes e do valor econômico resultante é apresentado na Figura 12. O valor econômico pode ser determinado extrapolando-se as melhorias, em segundos, com base no valor que cada segundo de melhoria representa para a organização. Por exemplo, a Amazon estima que cada melhoria de 1 segundo gera um valor econômico de US$ 1,6 bilhão; portanto, a solução 3 proporciona um valor econômico de US$ 4,3 bilhões em relação à linha de base.

Como pode ser visto nesses resultados, as equipes de DevOps podem obter melhorias significativas de desempenho sem reescrever a aplicação, usando as três opções propostas neste blog e mantendo o mesmo nível de proteção de segurança para a aplicação. Para saber mais sobre casos de uso reais de clientes que podem ser solucionados por uma plataforma de nuvem distribuída ou compartilhar comigo casos de uso reais de clientes, entre em contato comigo pelo LinkedIn ou Twitter.
Sobre o autor

Publicações relacionadas no blog

Entrega e proteção de agentes de IA em fábricas de IA: F5 para a arquitetura de referência NVIDIA OpenShell para agentes de IA seguros
As soluções da F5 ampliam a Arquitetura de Referência NVIDIA OpenShell para agentes de IA seguros.
Como medir – e minimizar – o custo total de propriedade do seu Kubernetes
O Kubernetes pode ser baixado e executado gratuitamente, mas sua manutenção está longe de não ter custos. Assim como outras grandes plataformas de código aberto que são “gratuitas” apenas em um sentido simplista, o Kubernetes quase certamente exigirá investimentos para ser implantado e operado.
As-Code: a pilha de TI contínua
Infraestrutura, configuração, pipeline, operações. De repente, tudo é “como código”. Lori MacVittie busca esclarecer a terminologia e identificar os diferentes componentes de uma stack contínua de TI.
O estado da entrega de aplicações em 2017: automação, APIs e DevOps
Explore o relatório State of Application Delivery de 2017. Leia o blog retrospectivo da F5 sobre o início da ascensão das redes declarativas e dos pipelines de DevOps.
DevOps Summit: onde a rede foi convidada para a festa
No DevOps Summit NY, falou-se muito não apenas sobre DevOps, mas também sobre contêineres, IoT e microsserviços. As sessões se concentraram não só na mudança cultural necessária para crescer em escala com uma abordagem DevOps, mas também fizeram questão de incluir...
F5 e Nutanix convergem em infraestrutura no .NEXT
Aplicações empresariais como Microsoft SharePoint e Exchange, juntamente com a VDI, continuam sendo a espinha dorsal da sua empresa. A produtividade, embora não seja tão atraente quanto o lucro, é um fator essencial para o sucesso das operações empresariais atuais. Deixar de...