Visão geral

Medir a performance é o ponto de partida para identificar oportunidades para melhorar a velocidade das aplicações Web. A performance medida é influenciada pela qualidade da entrega de conteúdo usando uma CDN e pela forma como uma aplicação Web é projetada. Este artigo se concentra nas melhores práticas para medir a performance da entrega de conteúdo. Essa prática é importante para comparar CDNs (por exemplo, lançar uma nova CDN), para alternar CDNs em uma arquitetura com várias CDNs e simplesmente para mudanças contínuas na configuração da CDN (por exemplo, implementar um novo protocolo como HTTP/3). Para obter os dados de performance da CDN mais relevantes e precisos, as condições de teste devem ser cuidadosamente selecionadas: técnicas de medição e condições de teste.

Amazon CloudFront Flash Talks: Melhores práticas

Técnicas de medição

Testes sintéticos para medição da performance em nível de aplicação

Testes sintéticos são uma técnica de medição em que os operadores simulam o cenário de um usuário carregando sua aplicação Web. Isso pode ser feito simplesmente no computador do operador, usando ferramentas como o Chrome's Lighthouse, ou em um datacenter usando ferramentas como a Webpagetest.org, ou em uma rede sofisticada de sondas implantadas em datacenters e backbones de ISP em todo o mundo, usando ferramentas como Catchpoint ou CloudWatch Synthetics.

Essa abordagem é benéfica para entender a performance do código da sua aplicação Web (por exemplo, impacto do javascript no carregamento de páginas). É uma abordagem recomendada para monitorar a melhoria ou a regressão da performance da sua aplicação após uma atualização de código, nas diferentes etapas do seu processo de lançamento de código (por exemplo, testes sintéticos em ambiente de pré-produção).

No entanto, os testes sintéticos são insuficientes ao medir a performance das CDNs. Por exemplo, sondas de testes sintéticos geralmente ficam em redes que não transportam tráfego real de usuários, para as quais nem todos os sistemas de roteamento de CDNs são otimizados. Além disso, o tráfego gerado por testes sintéticos é relativamente baixo em comparação com a carga de tráfego real, o que não reflete bem como as CDNs aquecem sua rede com o aumento do tráfego. Por esses motivos, é recomendável usar técnicas de Medição de usuários reais (RUM) para o benchmarking de CDNs. Leia o

Medição de usuários reais para medição da performance no nível da CDN

Se você quiser medir a performance da sua CDN, como o CloudFront, considere usar a técnica de Medição de usuários reais (RUM), usando ferramentas como o CloudWatch RUM. O RUM fornece os dados mais precisos sobre a performance da sua aplicação Web do ponto de vista dos usuários. O CloudWatch RUM permite que você entenda como a performance da sua CDN está afetando os principais fatores vitais da Web da sua aplicação, como a métrica Maior conteúdo de pintura (LCP). Você também pode usar o RUM para correlacionar a performance da CDN com o KPI da sua empresa (por exemplo, número de visitas de usuários, vendas etc...). Para usar o CloudWatch RUM, você precisa adicionar uma etiqueta javascript às suas páginas da Web. O javascript coleta dados das APIs do navegador, como tempos de carregamento da página com detalhamento nas etapas de conexão (pesquisa de DNS, conexão TCP etc.) ou Core Web Vitals e os envia ao CloudWatch RUM para a geração de painéis. Você pode analisar a performance da sua CDN filtrando por dimensões específicas, como o tipo de navegador, o país do usuário ou um ID de página específico.

Quando sua CDN estiver mostrando latências em uma dessas dimensões (por exemplo, uma página ou região geográfica específica), detalhe as métricas de rede das solicitações dentro da dimensão periférica. Tempos de conexão TCP lentos podem indicar um roteamento abaixo do ideal. O tempo lento até o primeiro byte em falhas de cache pode indicar uma origem lenta. Use a solução de problemas no lado do servidor do CloudFront em combinação com o CloudWatch RUM para detalhar ainda mais e entender problemas de latência.

Monitoramento de usuários reais para o Amazon CloudWatch

Melhores práticas para benchmarking de CDNs

Considere as seguintes melhores práticas para configurar condições de teste imparciais para benchmarking de CDNs como o CloudFront:

  • Envie uma parte significativa do seu tráfego (20% no mínimo) para cada CDN, para medir a performance real da CDN em grande escala. CDNs como o CloudFront mostram melhor performance em grande escala quando aquecidas (por exemplo, cache preenchido, grupo de conexões TCP aquecido e entradas DNS armazenadas em cache por ISPs)
  • Realize os testes de benchmarking nas mesmas condições para todas as CDNs. Envie a mesma quantidade de tráfego para cada CDN, ao mesmo tempo e para a mesma base de usuários.
  • Conduza os testes por um período de tempo relevante. Por exemplo, se você entrega conteúdo longo, as CDNs podem precisar de dias para preencher o cache e aumentar a taxa de acerto de cache para um estado estável.
  • Configure CDNs com os mesmos recursos, como compressão, otimização de imagens, protocolos (HTTP/3 versus H2, TLS1.3 versus TLS1.2, IPv6 versus IPv4), aceleração de origem (Origin Shield) etc.

Algumas soluções de terceiros para direcionamento de tráfego, como o Pulsar da NS1 ou o Citrix Intelligent Traffic Management, incluem seus próprios dados de RUM coletados de fontes externas à sua aplicação. Se você usa essas ferramentas, considere as seguintes pegadinhas ao pensar no benchmarking de performance de CDNs:

  • As CDNs são testadas nas mesmas condições? Configurações e otimizações semelhantes?
  • Quantos pontos de dados são coletados para cada dimensão? Mais pontos de dados levam a um benchmarking mais preciso (aquecimento de CDNs, erros estatísticos etc.)
  • Os objetos testados têm as mesmas características da sua aplicação (por exemplo, estático versus dinâmico, objeto pequeno versus objeto grande, objetos populares versus objetos não populares etc...)
  • Algumas dessas ferramentas oferecem a possibilidade de fazer testes de RUM em suas próprias CDNs. Considere essa opção, pois ela refletirá melhor a performance que os seus usuários experimentarão com as suas CDNs.
  • Use a combinação mais adequada de métricas de performance (latência, throughput, P50 versus P90) e disponibilidade que seja relevante para a sua aplicação. Por exemplo, downloads de objetos grandes são mais sensíveis à throughput do que à latência.

Recursos

Esta página foi útil para você?