Indice dei contenuti dell'articolo:
La cache web è uno strumento fondamentale per migliorare le prestazioni di un sito web. Essa consiste in una memoria temporanea in cui vengono memorizzati i risultati delle richieste effettuate da un browser web al server. In questo modo, quando un browser richiede di nuovo una determinata risorsa, il server non dovrà elaborare nuovamente la richiesta ma potrà restituire il risultato già presente in cache, migliorando così le prestazioni del sito.
Diamo un’occhiata a cos’è il caching e come può aiutare il tuo sito web a caricarsi più velocemente ora che sappiamo perché è essenziale. Usi il tuo browser web per richiedere e costruire una pagina web dal server del sito web ogni volta che la visiti. L’elemento HTML per creare la pagina, le immagini, il contenuto, lo stile e altri file sono archiviati sul server. Per generare una pagina web completa, il tuo browser invia fino a 100 richieste avanti e indietro dal server del sito web.
Se non utilizzi la memorizzazione nella cache, dovrai eseguire ripetutamente tali richieste ogni volta che visiti quella pagina. E tutti gli altri che visitano quel sito Web stanno facendo le stesse richieste. Quando un gran numero di persone accede a un sito Web contemporaneamente, il server rallenta e diventa meno reattivo. La memorizzazione nella cache fornisce una soluzione memorizzando una copia della pagina Web completata in molte posizioni.
Indipendentemente dal fatto che sia ospitata su un singolo server locale o tramite una rete per la distribuzione di contenuti (CDN), una cache conserva una copia dei file che compongono una pagina Web in modo che i visitatori possano ricevere le pagine più rapidamente.
Uno dei software più diffusi per implementare la cache web è Varnish Cache, un server proxy di fascia Enterprise (utilizzando dalle più grandi realtà online al mondo, nonchè da noi in Managed Server Srl) che viene installato tra il server web e il browser degli utenti. Varnish è in grado di gestire grandi quantità di richieste contemporaneamente e di memorizzare in cache su disco o in RAM le risposte ricevute dal server web, in modo da accelerare il caricamento delle pagine del sito.
Se non hai le competenze o le risorse per utilizzare software di Web Cache come Varnish, puoi comunque migliorare le prestazioni del tuo sito web utilizzando servizi in outsourcing come Cloudflare.
Cloudflare è un provider di servizi di Content Delivery Network (CDN) che offre una vasta gamma di strumenti per migliorare la velocità e le prestazioni del sito web. Tra questi strumenti vi è la Web Cache, che funziona in modo simile alla Cache Web di Varnish, archiviando temporaneamente i contenuti delle pagine web per accelerarne la consegna ai clienti.
L’utilizzo di Cloudflare come servizio di Web Cache ha alcuni vantaggi, come l’eliminazione del bisogno di utilizzare e gestire software di cache complessi come Varnish. Inoltre, Cloudflare offre una serie di funzionalità aggiuntive come la protezione DDoS, l’accelerazione del sito web tramite la distribuzione di contenuti da server CDN distribuiti in tutto il mondo, e la compressione dei contenuti.
Tuttavia, va considerato che l’utilizzo di servizi in outsourcing come Cloudflare ha dei costi maggiori rispetto all’utilizzo di software di cache come Varnish, e il loro impatto sui costi di gestione del sito web deve essere valutato attentamente.
A prescindere dalle soluzioni che si intende adoperare, c’è un problema che ne Varnish ne CloudFlare saranno in grado di risolvere, ne tanto meno la maggior parte degli Hosting provider li fuori (noi inclusi) che una volta fatto l’onboarding del cliente, ci risentiamo per gli auguri di Natale.
Questo post non vuole essere solo una critica al mercato degli hosting, inteso con “gli hosting che erogano gli altri fornitori”, ma anche e soprattutto un’autocritica, perchè sotto questo aspetto anche noi abbiamo poltrito e ci siamo adoperati solo da appena qualche mese per cambiare le cose ed alzare (ancora una volta) l’asticella del panorama dell’hosting.
Troviamo infatti nei maggiori fornitori di hosting ad alte prestazioni, i più elevati e complessi strati di cache, ma poi nessuno offre il servizio di warm up della cache, lasciando intendere che sia compito del cliente adoperarsi per l’implementazione dello stesso al fine di avere una Hit ratio maggiore.
Cos’è l’HIT Ratio di una Web Cache ?
L’hit ratio della cache è un indicatore molto importante che misura la percentuale di richieste dei clienti che vengono soddisfatte dalla Cache Web. Un alto hit ratio significa che una grande percentuale delle richieste viene soddisfatta dalla cache, il che porta a un notevole miglioramento delle prestazioni del sito web.
Per garantire un alto hit ratio, la cache deve essere “riscaldata” (warm up), ovvero deve memorizzare nella cache i risultati a partire dalla sitemap. Inoltre, il cliente deve essere abituato a lavorare con la cache, per le procedure di importazione dei prodotti ad esempio, e deve essere a conoscenza della presenza di slot orari ben definiti al fine di effettuare operazioni di pulizia e purge della cache a cui seguiranno i task in cron per la rigenerazione della stessa.
Tuttavia, l’utilizzo della Cache Web può essere inutile se il sito web non viene utilizzato correttamente secondo alcune non ha accordi con il cliente finale. Se il sito web non dispone di un alto traffico o se il cliente non è disposto ad aggiornare regolarmente il sito web, la Cache Web potrebbe non portare alcun beneficio significativo. In tal caso, l’implementazione della Cache Web potrebbe diventare un costo aggiuntivo senza alcun vantaggio evidente.
Formare ed istruire il cliente a lavorare proficuamente con la Web Cache.
La nostra azienda ha deciso di lavorare a stretto contatto con i nostri clienti per valutare il loro modus operandi nella gestione dei loro siti web, in particolare nei siti ecommerce. In questo processo, ci concentriamo sulla valutazione delle operazioni di importazione prodotti, carico e scarico magazzino e su tutte quelle attività che richiedono obbligatoriamente una pulizia completa della cache.
Questo processo di valutazione è stato avviato perché riteniamo che una gestione efficace della cache sia fondamentale per garantire prestazioni ottimali dei siti web, soprattutto nei siti ecommerce.
La nostra azienda è consapevole dell’importanza della gestione efficiente del sito web, soprattutto per quanto riguarda i siti ecommerce. In collaborazione con i nostri clienti, abbiamo deciso di valutare il loro modus operandi nella gestione del sito, in particolare le operazioni di importazione dei prodotti, il carico e scarico magazzino e tutte le operazioni che richiedono una pulizia completa della cache.
La cache del sito web è un elemento cruciale per garantire prestazioni ottimali e velocità di caricamento del sito. Tuttavia, a volte la cache può causare problemi se non viene gestita correttamente. In particolare, le operazioni di importazione dei prodotti, il carico e scarico magazzino possono causare problemi nella cache, poiché modificano il contenuto del sito web e la cache deve essere aggiornata di conseguenza.
Per questo motivo, abbiamo deciso di lavorare con i nostri clienti più esigenti per valutare le loro procedure di importazione dei prodotti e il loro modus operandi nella gestione della cache. In particolare, stiamo cercando di capire se ci sono procedure in atto per pulire regolarmente la cache e se i clienti sono a conoscenza della necessità di eseguire queste operazioni in modo regolare.
Stiamo anche valutando la possibilità di definire slot orari ben precisi per eseguire le operazioni di pulizia della cache e di pianificare i task in cron per la rigenerazione della cache.
Freshcache.php uno strumento semplice in grado di rigenerare la cache web.
Per riscaldare la web cache abbiamo sviluppato Freshcache.php, uno strumento in uso nel nostro servizio di Hosting che a partire da una sitemap è in grado di rigenerare la cache, Esso può essere lanciato sia a riga di comando che tramite cron.
In fase di sviluppo abbiamo deciso di mettere al centro l’usabilità e la malleabilità dello strumento che avrebbe dovuto essere in grado di essere adatto ed adattabile a qualsiasi situazione, CMS o piattaforma a partire da standard ormai ben recepiti come le sitemap.
Principalmente tramite curl riusciamo a generare richieste parallele al fine di rigenerare la cache ad orari specifici tramite cron o manualmente in momenti in cui il cliente lo ritiene opportuno (ad esempio dopo aver importato una nuova collezione moda) o aver variato massivamente i prezzi in vista degli imminenti saldi.
E’ ovvio e pacifico che il task vada calibrato sapientemente sia negli orari del workflow standard del cliente che una volta “istruito” dovrà rispettare alcune semplice regole ed orari per ottenere il massimo dalla sua cache, inoltre necessariamente va calibrato sul numero delle richieste parallele al fine di non saturare il carico del server per un uso eccessivo di CPU per l’esecuzione di codice PHP non performante o query SQL lente.
Considerando i vantaggi che vengono apportati in termini di velocità in un sito che avrà sempre una versione ottimizzata in cache e tenendo conto anche dell’impatto che la rigenerazione della cache può avere a livello di carico, abbiamo per ora riservato questa funzionalità a tutti i clienti che hanno un server dedicato o un’istanza dedicata in modo da isolare i picchi di carico da quelli che potrebbero invece avvenire in ambienti condivisi.