Panoramica

La misurazione delle prestazioni è il punto di partenza per identificare le opportunità per migliorare la velocità delle applicazioni web. Le prestazioni misurate sono influenzate dalla qualità della distribuzione dei contenuti tramite una CDN e dal modo in cui è progettata un'applicazione web. Questo articolo si concentra sulle migliori pratiche per misurare le prestazioni di distribuzione dei contenuti. Questa pratica è importante per l'analisi comparativa delle CDN (ad esempio l'implementazione di una nuova CDN), per cambiare le CDN in un'architettura multi-CDN e semplicemente per le modifiche continue alla configurazione CDN (ad esempio l'implementazione di un nuovo protocollo come HTTP/3). Per ottenere i dati più pertinenti e accurati sulle prestazioni CDN, le condizioni di test devono essere selezionate con attenzione: tecniche di misurazione e condizioni di test.

Amazon CloudFront Flash Talks: migliori pratiche

Tecniche di misurazione

Test sintetici per la misurazione delle prestazioni a livello di applicazione

Il test sintetico è una tecnica di misurazione in cui gli operatori simulano lo scenario di un utente che carica la propria applicazione web. Questo test può essere eseguito semplicemente dal computer dell'operatore utilizzando strumenti come Lighthouse di Chrome oppure da un datacenter, utilizzando strumenti come Webpagetest.org o da una sofisticata rete di sonde distribuite nei datacenter e nelle dorsali degli ISP in tutto il mondo, utilizzando strumenti come Catchpoint o CloudWatch Synthetics.

Questo approccio è utile per comprendere le prestazioni del codice dell'applicazione web (ad esempio l'impatto di javascript sul caricamento della pagina). È un approccio consigliato per monitorare il miglioramento o il peggioramento delle prestazioni della tua applicazione dopo un aggiornamento del codice, nelle diverse fasi del processo di rilascio del codice (ad esempio test sintetici in ambiente pre-produzione).

Tuttavia, i test sintetici non sono all'altezza quando misurano le prestazioni delle CDN. Ad esempio, le sonde dei test sintetici di solito si trovano in reti che non trasportano traffico utente reale, per le quali non sono ottimizzati tutti i sistemi di routing delle CDN. Inoltre, il traffico generato dai test sintetici è relativamente basso rispetto al carico di traffico reale, il che non riflette bene il modo in cui le CDN aumentano il traffico della loro rete con un traffico crescente. Per tali motivi, consigliamo di misurare le prestazioni delle CDN con tecniche di Real User Measurement (RUM). Leggi il

Real User Measurement per la misurazione delle prestazioni a livello di CDN

Se desideri misurare le prestazioni della tua CDN come CloudFront, valuta l'utilizzo della tecnica Real User Measurement (RUM) utilizzando strumenti come CloudWatch RUM. RUM fornisce i dati più accurati sulle prestazioni della tua applicazione web dal punto di vista degli utenti. CloudWatch RUM ti permette di comprendere in che modo le prestazioni della CDN influiscono sui Core Web Vitals dell'applicazione, come il parametro Largest Content Paint (LCP). Puoi anche utilizzare RUM per correlare le prestazioni della CDN con i tuoi KPI aziendali (ad esempio numero di visite degli utenti, vendite, ecc...). Per utilizzare CloudWatch RUM, è necessario aggiungere un tag javascript alle tue pagine web. Il javascript raccoglie i dati dalle API del browser, come i tempi di caricamento delle pagine con suddivisione delle fasi di connessione (ricerca DNS, connessione TCP, ecc.) o Core Web Vitals, e quindi li invia a CloudWatch RUM per il dashboard. Puoi analizzare le prestazioni della tua CDN filtrando in base a dimensioni specifiche come tipo di browser, Paese dell'utente o ID di pagina specifico.

Quando la tua CDN mostra latenze in una di queste dimensioni (ad esempio una pagina o un'area geografica specifica), approfondisci l'analisi dei parametri di rete delle richieste all'interno della dimensione periferica. Tempi lenti di connessione TCP potrebbero indicare un routing non ottimale. Un tempo lento al primo byte in caso di mancata memorizzazione della cache potrebbe indicare un rallentamento all'origine. Utilizza la risoluzione dei problemi lato server di CloudFront in combinazione con CloudWatch RUM per approfondire l'analisi e comprendere eventuali problemi di latenza.

Monitoraggio di utenti reali per Amazon CloudWatch

Le migliori pratiche per il benchmarking delle CDN

Considera le seguenti best practice per configurare condizioni di test imparziali per il benchmarking di CDN come CloudFront:

  • Invia una parte significativa del tuo traffico (almeno il 20%) a ciascuna CDN, per misurare le prestazioni effettive delle CDN su larga scala. Le CDN come CloudFront hanno prestazioni migliori su larga scala quando sono riscaldate (ad es. cache popolata, pool di connessioni TCP riscaldato e voci DNS memorizzate nella cache dagli ISP)
  • Conduci i test di benchmarking nelle stesse condizioni per tutte le CDN. Invia la stessa quantità di traffico a ciascuna delle tue CDN, nello stesso momento e alla stessa base di utenti.
  • Conduci i test per un periodo di tempo pertinente. Ad esempio, se distribuisci contenuti a coda lunga, le CDN potrebbero aver bisogno di giorni per popolare la cache e portare la percentuale di riscontri nella cache a uno stato stabile.
  • Configura le CDN con le stesse funzionalità, come compressione, ottimizzazione delle immagini, protocolli (HTTP/3 vs H2, TLS1.3 vs TLS1.2, IPv6 vs IPv4), accelerazione dell'origine (Origin Shield), ecc.

Alcune soluzioni di terze parti per la gestione del traffico, come Pulsar di NS1 o Citrix Intelligent Traffic Management, includono i propri dati RUM raccolti da fonti esterne all'applicazione. Se utilizzi questi strumenti, tieni a mente queste dritte quando pensi al benchmarking delle prestazioni della CDN:

  • Le CDN sono testate nelle stesse condizioni, con configurazioni e ottimizzazioni simili?
  • Quanti punti dati vengono raccolti per ogni dimensione? Un numero maggiore di punti dati porta a un'analisi comparativa più accurata (riscaldamento delle CDN, errori statistici, ecc.)
  • Gli oggetti testati hanno le stesse caratteristiche della tua applicazione (ad esempio Statico vs Dinamico, oggetto piccolo vs oggetto grande, oggetti popolari vs oggetti non popolari ecc.)?
  • Alcuni di questi strumenti offrono la possibilità di eseguire test RUM sulle tue CDN. Valuta questa opzione, poiché rifletterà meglio le prestazioni che i tuoi utenti sperimenteranno con le tue CDN.
  • Utilizza la combinazione più appropriata di parametri delle prestazioni (latenza, velocità di trasmissione effettiva, P50 rispetto a P90) e disponibilità pertinenti alla tua applicazione. Ad esempio, i download di oggetti di grandi dimensioni sono più sensibili alla velocità di trasmissione effettiva che alla latenza.

Risorse

Questa pagina ti è stata utile?