Indice dei contenuti dell'articolo:
L’innovazione tecnologica non si ferma mai, e un recente sviluppo nel mondo dei browser web promette di rivoluzionare il modo in cui interagiamo con Internet. Google Chrome, il browser più utilizzato al mondo, ha introdotto il supporto per Zstandard (zstd), un algoritmo di compressione dati sviluppato da Yann Collet di Meta (precedentemente Facebook). Questa mossa potrebbe segnare un significativo passo avanti nel migliorare la velocità di caricamento delle pagine web e nel ridurre l’utilizzo della larghezza di banda.
The latest versions of Chromium-based browsers now support Zstandard compression by default. This means that all your websites using @caddyserver or FrankenPHP are served using this state-of-the-art compression format for users of Chrome, Edge, and Opera 🎉. pic.twitter.com/YhWfh1oHw1
— Kévin Dunglas (@dunglas) April 15, 2024
Cos’è Zstandard o ZSTD ?
Zstandard è un algoritmo di compressione dati senza perdita sviluppato originariamente da Yann Collet mentre lavorava per Facebook. Lanciato per la prima volta il 31 agosto 2016, Zstandard è stato progettato per offrire un rapporto di compressione comparabile a quello dell’algoritmo DEFLATE, utilizzato nei programmi ZIP e gzip originari del 1991, ma con una velocità superiore, soprattutto in fase di decompressione. L’algoritmo è noto per la sua capacità di essere adattato a diversi livelli di compressione, da -7 (il più veloce) a 22 (il più lento nella compressione ma il migliore per quanto riguarda il rapporto di compressione).
Una delle caratteristiche distintive di Zstandard è la sua capacità di implementare la ricerca su lunghe distanze e la deduplicazione, simili a quelle offerte da rzip o lrzip, a partire dalla versione 1.3.2. Inoltre, offre una modalità “adattiva” che varia il livello di compressione in base alle condizioni di I/O, principalmente la velocità con cui può scrivere l’output.
In merito a Zstandard ne abbiamo già discusso in questo post (ZStandard, la compressione standard di Facebook che tanto standard non è.) essendo di fatto diventato nella nostra azienda il modo standard per la compressione dei backup che ci permette di ottenere ad esempio un risparmio medio del 50% nello stoccaggio dei backup MySQL.
Implementazione in Google Chrome
Nello scorso marzo del 2024, Google ha aggiunto il supporto per Zstandard nella versione 123 di Chrome, permettendo di utilizzare questo algoritmo nell’header HTTP Content-Encoding. Questa implementazione permette una compressione dei dati più efficiente, il che si traduce in pagine web che si caricano più velocemente, utilizzano meno larghezza di banda, richiedono meno tempo, meno CPU e meno durata della compressione da parte dei server, riducendo così anche i costi operativi.
Nonostante il grande entusiasmo che ha accolto l’introduzione di Zstandard, attualmente il supporto a livello di server web rimane piuttosto limitato. Questo panorama potrebbe presto cambiare con il rilascio di Zstd 1.5.6, una versione aggiornata che non solo introduce nuove funzionalità pensate appositamente per migliorare la gestione degli aggiornamenti incrementali nei browser, ma estende anche il supporto a una varietà più ampia di architetture hardware, come SPARC64, ARM64EC e RISC-V. Queste migliorie sono pensate per stimolare una più vasta adozione di Zstandard da parte dei browser e del software in generale, aumentando la sua applicabilità e la sua efficacia nel trattamento dei dati web.
È importante sottolineare che, nell’attuale panorama tecnologico, parlare di Chrome significa prevalentemente fare riferimento a Chromium. Chromium è un progetto di browser web open-source da cui Google Chrome attinge il proprio codice sorgente. Questa piattaforma è la base non solo per Google Chrome, ma anche per una serie di altri browser significativi. Tra questi figurano Microsoft Edge, Opera e Brave, che sono sviluppati utilizzando lo stesso motore di rendering di Chromium. Di conseguenza, l’integrazione di Zstandard in Chromium implica che questa funzionalità di compressione verrà adottata e implementata anche in questi altri browser nei loro prossimi aggiornamenti.
Vantaggi rispetto a Brotli
Prima dell’avvento di Zstandard, Brotli era uno degli algoritmi di compressione preferiti per la gestione del traffico web, apprezzato per la sua efficacia nel ridurre le dimensioni dei dati trasmessi e nel migliorare i tempi di caricamento delle pagine web. Brotli, sviluppato da Google, è stato introdotto nel 2015 e da allora è diventato uno standard per la compressione HTTP, grazie soprattutto alla sua capacità di ottenere un buon equilibrio tra velocità di compressione e rapporto di compressione, rendendolo particolarmente utile per il web.
Tuttavia, con l’introduzione di Zstandard, sono emersi nuovi vantaggi che potrebbero inclinare la bilancia a suo favore in molti scenari di utilizzo. Zstandard offre una flessibilità notevolmente superiore e una velocità di decompressione che generalmente supera quella di Brotli, due fattori cruciali per le prestazioni del web moderno.
Vantaggi tecnici di Zstandard rispetto a Brotli
- Velocità di decompressione: Zstandard è progettato per decomprimere i dati a velocità molto elevate, indipendentemente dal livello di compressione utilizzato. Questo è particolarmente vantaggioso per le applicazioni web che necessitano di tempi di caricamento rapidi. Benché Brotli offra un’eccellente compressione, la sua velocità di decompressione può essere fino a tre volte più lenta rispetto a Zstandard a parità di rapporto di compressione. Per esempio, test benchmark mostrano che, mentre Zstandard può decomprimere dati a velocità che superano i 1000 MB/s su hardware moderno, Brotli spesso non raggiunge i 400 MB/s.
- Flessibilità: Zstandard supporta una gamma molto ampia di livelli di compressione, da molto veloci a molto potenti. Questo permette agli sviluppatori di scegliere il miglior equilibrio tra velocità e efficienza a seconda delle esigenze specifiche della loro applicazione o ambiente di rete. Brotli, pur essendo altamente configurabile, offre meno granularità nei livelli di compressione, il che può limitarne l’applicabilità in scenari dove la personalizzazione è fondamentale.
- Efficienza in condizioni di rete variabili: Zstandard funziona eccezionalmente bene in una varietà di condizioni di rete, mantenendo la sua efficienza anche quando la larghezza di banda è limitata o la latenza è elevata. Questo lo rende ideale per ambienti mobile o per utenti che accedono a contenuti web da regioni con infrastrutture di rete meno sviluppate.
- Adattabilità e tecnologie di supporto: Zstandard include funzionalità come la compressione con dizionario e una modalità di addestramento che può ulteriormente migliorare il rapporto di compressione per set di dati specifici. Questo può essere particolarmente utile per applicazioni come database, log di sistema, e trasferimenti di file che presentano molte redundanze. Brotli supporta anche la compressione basata su dizionario, ma la tecnologia di addestramento di Zstandard è più avanzata, offrendo migliori prestazioni soprattutto con file di piccole dimensioni.
Impatto sui servizi di Hosting e sui Sistemi Esistenti
L’introduzione di Zstandard come algoritmo di compressione supportato da Chrome offre un’opportunità significativa per i sistemisti e i provider di servizi di hosting. Questi professionisti devono ora valutare come i loro sistemi possono essere ottimizzati per sfruttare al massimo le capacità di Zstandard, garantendo nel contempo la compatibilità con i browser che non supportano ancora questo algoritmo.
Uno degli aspetti cruciali riguarda l’aggiornamento dei server per supportare la nuova codifica. Questo passaggio potrebbe richiedere investimenti iniziali in termini di tempo e risorse, ma è essenziale per mantenere la competitività nel mercato del hosting. Con l’aumento delle velocità di decompressione e la flessibilità offerta da Zstandard, i servizi di hosting che adottano precocemente questa tecnologia possono offrire esperienze utente nettamente migliorate, traducendosi in tempi di caricamento delle pagine più rapidi e un uso più efficiente della larghezza di banda.
Inoltre, i servizi di hosting che mirano a posizionarsi come leader nel settore della performance web dovranno inevitabilmente supportare la compressione Zstandard oltre a Brotli. Questa non è solo una questione di offrire una nuova tecnologia ma diventa un elemento distintivo di superiorità tecnica e di capacità di adattamento alle esigenze moderne di velocità e efficienza di Internet.
Per ciò che concerne la nostra azienda, focalizzata da sempre nella ricerca e sviluppo, rimanendo in attesa della messa in produzione stabile da parte di Chrome e dei browser sviluppati sopra a Chromium, abbiamo deciso nella nostra Roadmap, di rendere per la data di Settembre 2024, tutto il nostro stack software web compatibile con ZSTD, a partire da NGINX fino a Varnish, garantendo un tempo di testing ottimale in questi 4 mesi, che i relativi benchmark, per poter offrire come sempre il miglior hosting di fascia enterprise sia per hosting generici, che per hosting specifici come ad esempio Hosting WordPress.