Otimizando a experiência de uso de aplicações para usuários finais: um cenário em transformação
Introdução
Desde o seu surgimento, a Internet tem evoluído em ciclos cada vez mais rápidos — aprimorando o processo de entrega de aplicações e aumentando a interatividade —, impulsionada pelos avanços tecnológicos e pelas forças do mercado. Empresas e órgãos governamentais precisam se empenhar para acompanhar as expectativas dos usuários e as pressões competitivas. Tecnologias mais antigas que prejudicavam a experiência do usuário (por exemplo, Adobe Flash e HTTP/1.x) ficaram para trás, enquanto tecnologias mais recentes (por exemplo, HTML5), mais voltadas à experiência do usuário, assumiram seu lugar.
Neste artigo, quantificaremos algumas das mudanças mais recentes que afetam a experiência do usuário e que as equipes de TI devem compreender para fins operacionais e de planejamento em 2017 e nos anos seguintes:
- A onipresença das redes de distribuição de conteúdo (CDNs)
- Atualizações de redes de data centers e provedores de serviços
- Acesso móvel e de “última milha” mais rápido
- Protocolo HTTP atualizado e projetado para oferecer melhor desempenho
- Evolução da relação cliente-servidor
CDNs em todos os lugares
Os provedores de CDN expandiram rapidamente o número de pontos de presença (PoPs) que operam, principalmente próximos a centros populacionais, para reduzir a latência (cerca de 30 ms em muitos casos) na entrega de conteúdo aos usuários. Abaixo está uma lista das CDNs mais populares que implantaram infraestrutura em todo o mundo para garantir a entrega rápida de conteúdo.1

À medida que as CDNs aumentaram o número de PoPs que operam — bem como sua proximidade com os usuários — e que a base de usuários dos aplicativos se tornou global, os sites passaram a depender mais das CDNs. Em março de 2015, 11% do conteúdo HTML disponível na Internet estava hospedado em CDNs.2 Em 2016, esse número havia subido para 17% e, em março de 2017, o conteúdo HTML hospedado em CDNs já representava 20%. Em menos de dois anos, a quantidade de conteúdo HTML hospedado em CDNs quase dobrou, uma tendência que reduziu significativamente a latência na entrega de conteúdo aos usuários.
Redes modernizadas de data centers e provedores de serviços
A implementação de portas Ethernet de 10G/40G/100G (e dos respectivos switches e roteadores de maior capacidade) melhorou drasticamente o desempenho da Internet em redes corporativas, conexões WAN e endpoints remotos. Nos quatro anos seguintes, a atualização contínua das redes empresariais e de provedores de serviços para conexões de 25G e 100G aumentará a capacidade de largura de banda para quase cinco vezes o nível de 2015.3

O investimento na modernização da infraestrutura de data centers e de edge computing reduziu o problema de as redes dos provedores de serviços e os data centers corporativos se tornarem gargalos para o tráfego de aplicações destinado ao cliente.
Acesso móvel e de “última milha” mais rápido
Devido ao aumento da concorrência, os provedores de serviços de Internet (ISPs) e as operadoras de telefonia móvel em todo o mundo aumentaram as velocidades de download para os usuários da “última milha” (o trecho final das redes de telecomunicações que fornece conectividade aos clientes) e de dispositivos móveis. Abaixo estão gráficos que mostram o desempenho de download dos ISPs em 2015 nos EUA, na Ásia e na Europa.4
EUA


Ásia


Europa


Em todo o mundo, a “última milha” da conectividade com a Internet ficou muito mais rápida do que antes, e a largura de banda disponível atualmente ajuda a proporcionar uma melhor experiência do usuário com aplicações web.
Protocolo HTTP atualizado e projetado para alto desempenho (HTTP/2)
O desenvolvimento da especificação HTTP/2 foi motivado principalmente por problemas de desempenho do HTTP1.x. Em 2012, o Google desenvolveu e difundiu o SPDY para otimizar a entrega de conteúdo da Web e tentar eliminar as ineficiências do design do protocolo HTTP 1.1 anterior. O HTTP/2 se baseia no SPDY, com foco principal na redução da latência e do número de conexões TCP, mantendo a compatibilidade com o HTTP/1.1.
Com o objetivo de melhorar o desempenho, o protocolo HTTP/2 inclui as seguintes alterações:
- Multiplexação: permite várias interações em uma única conexão TCP (como o SPDY oferecia).
- Compactação de cabeçalhos: reduz a redundância do envio repetido dos mesmos cabeçalhos (por exemplo, URL da solicitação, User-Agent e cookies).
- Server Push: permite que o servidor envie conteúdo proativamente ao endpoint com base no conteúdo solicitado e nas dependências de origem (por exemplo, arquivos JS e CSS).
- Priorização de recursos: prioriza a entrega com base no tipo/conteúdo, usando pesos e dependências para otimizar a entrega e a renderização.
Os principais fornecedores de navegadores anunciaram cronogramas (veja a tabela abaixo) para incorporar o suporte ao HTTP/2 após a especificação do protocolo ter sido ratificada pela IETF em meados de 2015.

As solicitações HTTP/2 enviadas aos servidores web pelos navegadores dos dispositivos finais começaram no início de 2016 e aumentaram com o lançamento e a adoção de navegadores compatíveis com a nova especificação. As solicitações de navegadores atualizados aos servidores web são feitas primeiro em HTTP/2, com negociação para retornar ao HTTP/1.x. Na figura abaixo, detalhamos o crescimento da interação via HTTP/2 (entre o servidor e o dispositivo final) em sites do mundo todo.5

As melhorias na especificação HTTP/2 proporcionam um desempenho de 80% a 1000% superior ao de uma infraestrutura baseada em HTTP/1.x. Para entender como as alterações na especificação afetam o desempenho no mundo real, faça este teste simples de HTTP versus HTTPS da Anthum que demonstra as diferenças entre as duas versões do protocolo.
Evolução da relação cliente-servidor
Além dessas melhorias de infraestrutura e protocolo, a própria composição dos aplicativos também está mudando. Embora a aceleração do “front-end” já tenha sido necessária porque os aplicativos mais antigos “enviavam” tudo para o cliente, o aplicativo moderno é distribuído entre os dois componentes principais (cliente e servidor), a ponto de 90% das interações com um aplicativo (seja por meio de uma API ou de um navegador) envolverem pequenos blocos de dados.
Muito pouco “conteúdo” é entregue após o primeiro carregamento; a maior parte da camada de apresentação (a interface do usuário) pode ser manipulada no cliente por meio de bibliotecas JavaScript (JQuery, Angular etc.). Isso significa que a quantidade e o tipo de dados nas respostas (o principal alvo das tecnologias de aceleração de front-end) diminuíram drasticamente e agora consistem principalmente em JSON ou XML, e não HTML.

Devido a essa mudança arquitetural, a porcentagem de um aplicativo atual composta por HTML está diminuindo, enquanto outros tipos de composição estão aumentando (veja a figura abaixo).6

Como uma quantidade significativa de JavaScript (e HTML) é fornecida por meio de CDNs — porque os desenvolvedores incluem os scripts diretamente da Internet, em vez de hospedá-los localmente —, as técnicas de aceleração de front-end voltadas para esse conteúdo tornam-se menos relevantes para aplicações modernas.
Com o crescimento do uso de dispositivos móveis e a migração de tecnologias anteriores (por exemplo, Adobe Flash) para o HTML5, as equipes de aplicações de TI começaram a desenvolver aplicações Web de página única para serem executadas no navegador. Essas aplicações Web de página única normalmente não exigem que a página seja recarregada à medida que o usuário navega pelas diferentes partes da aplicação. Os resultados são uma navegação mais rápida, transferências de rede mais eficientes e uma melhor experiência para o usuário final.7 Atualmente, a maioria das aplicações Web é desenvolvida com um design de “página única” em mente.
Criando a experiência ideal de uso de aplicativos em 2017 e nos anos seguintes
Para criar e manter a experiência ideal do usuário final nos aplicativos baseados na web que estão sob o controle das operações de TI, devem ser empregadas as seguintes tecnologias e práticas.
Padronize os servidores web com o protocolo HTTP/2.
A atualização da infraestrutura web para o padrão HTTP/2 solucionará os problemas de desempenho no lado do servidor que afetavam o HTTP/1 e o HTTP/1.1. Além de oferecer um melhor gerenciamento de conexões, o HTTP/2 permite que os desenvolvedores de aplicações web definam prioridades para garantir a entrega otimizada de conteúdo e a renderização nos navegadores dos dispositivos finais.
Defina um padrão mínimo para os navegadores da web a fim de garantir que sejam feitas apenas solicitações baseadas em HTTP/2.
Incentivar, tanto internamente (por exemplo, funcionários e/ou prestadores de serviços) quanto externamente (por exemplo, clientes e parceiros), a atualização dos navegadores para versões compatíveis com solicitações HTTP/2 eliminará a negociação automática para HTTP/1.1 ou 1.0 e a consequente transferência de dados menos eficiente.
Verifique se os fornecedores de SaaS implementaram o HTTP/2 em todas as aplicações web.
Novamente, evitar a negociação automática para retornar ao HTTP/1.1 e 1.0 ajudará a melhorar o desempenho e a experiência do usuário.
Certifique-se de que o seu provedor de CDN tenha PoPs geograficamente alinhados às regiões onde seus usuários e clientes estão localizados.
Utilizar um fornecedor de CDN que tenha uma rede de PoPs geograficamente alinhada à localização de funcionários, prestadores de serviços e clientes reduzirá a latência nas interações entre os navegadores da Web e os PoPs da CDN.
Considere o uso de tecnologia de cache em dispositivos de rede.
O uso de dispositivos de rede com tecnologia de cache integrada à frente das aplicações ajudará a melhorar o desempenho do conteúdo estático necessário nas páginas da web.
Avalie caches web de código aberto e baixo custo.
Se for necessário usar cache, considere uma solução de cache web de código aberto, baixo custo e alto desempenho com SSD, como o Varnish.
Conclusão
Os requisitos de negócios e a migração para a computação móvel e em nuvem exercem uma pressão cada vez maior sobre as equipes de TI para otimizar a experiência do usuário durante a entrega de aplicações essenciais. Atualmente, há três fatores que estão mudando a forma como os usuários acessam o conteúdo da web. A capacidade das CDNs aumentou significativamente, e a proximidade dos POPs às principais bases de usuários contribui para a redução da latência. Em segundo lugar, os protocolos da Internet foram atualizados para melhorar o desempenho geral entre o servidor web e o cliente. Em terceiro lugar, a relação entre o servidor de Internet e o cliente mudou, de modo que as transações entre eles deixaram de ser tão unilaterais quanto antes, e os dados fornecidos são mais dinâmicos e específicos para cada usuário. Diante dessas mudanças, as estratégias criadas há 5 a 7 anos para otimizar a entrega de aplicações front-end e aprimorar a experiência do usuário estão rapidamente perdendo relevância devido às forças do mercado e à evolução natural da tecnologia web.
A infraestrutura de aplicações web corporativas deve evoluir de acordo com as mudanças do mercado, caso contrário, enfrentará queda no desempenho e no retorno sobre os investimentos em TI. Para os departamentos de TI, será fundamental garantir que a infraestrutura responsável por proporcionar a experiência do usuário (por exemplo, servidores web, balanceadores de carga, CDNs e SaaS) seja atualizada para HTTP/2, protocolo desenvolvido para melhorar o desempenho da web.
1 http://www.cdnplanet.com/cdns
2 http://httparchive.org
3 https://technology.ihs.com/589721/data-center-network-equipment-market-tracker-regional-q2-2017
4 https://www.stateoftheinternet.com/resources-connectivity-2015-q1-state-of-the-internet-report.html
5 https://w3techs.com/technologies/details/ce-HTTP/2/all/all
6 http://httparchive.org
7 https://techcrunch.com/2012/11/30/why-enterprise-apps-are-moving-to-single-page-design
PUBLICADO EM 29 DE AGOSTO DE 2017
