Oggi vogliamo parlarti di 5 termini fondamentali tipicamente usati dai sistemisti e grazie ai quali puoi avere l’occasione di comprendere meglio il funzionamento tecnico del tuo portale. Potrai così evitare problematiche gravi e di commettere gli errori più comuni in ambito hosting.

TTFB – Time To First Byte – Il tempo di ricezione del primo byte

E’ un dato fondamentale che rappresenta un parametro chiave da tenere sotto controllo.
Occorre fare attenzione a non confonderlo con quello di caricamento della pagina, che viene influenzata dalla presenza di plugin e dalle informazioni contenute nella pagina, nonché dalla rapidità di connessione dell’utente.

Il TTFB è un parametro che indica la rapidità del ricevimento del primo byte dal server a cui si connette l’utente a quello del sito, pertanto anche la risposta del portale viene leggermente influenzata da tale parametro.

Come valutare il Time To First Bite – TTFB
0,1 – 0,2 secondi: ottimo
0,3 – 0,5 secondi: buono
0,6 – 0,9 secondi: nella media
1 – 1,5 secondi: sopra la media
1,6 o più lento secondi: molto male

Un parametro basso di TTFB è segnale di web server ben configurato.
Un bassissimo TTFB si osserva con le pagine web servite in modo statico (cache), mentre TTFB più alto è spesso dovuto a numerose richieste ad un database.

E’ uno dei parametri che forniamo con il nostro performance report, è importante tener conto della location di partenza del test perché la latenza della rete influenza il risultato. Noi utilizziamo in maniera incrociata una delle nostre farm, con diversi “tipi” di dispositivi (pc, smartphone, tablet) e diversi “tipi” di browser / sistemi (chrome,safari, explorer).

Cos’è la latenza? la latenza non è altro che una misura della velocità di risposta di un sistema, è l’intervallo di tempo che intercorre fra il momento in cui viene inviato l’input al sistema e il momento in cui è disponibile il suo output. La latenza dipende dalla “distanza” e dal numero di nodi di rete tra l’utente e il server.

Le cache e la loro importanza

Le cache sono divenute fondamentali al giorno d’oggi quando si parla di realizzazione di un portale online.
Ciò poiché si tratta di piccole porzioni di dati fondamentali che vengono prelevati, ovviamente col consenso di chi utilizza quel sito, per rendere l’esperienza di navigazione online migliore.

Questo per il semplice fatto che quei dati che vengono memorizzati hanno uno scopo ben preciso, ovvero fare in modo che la navigazione sia più rapida, dato che le informazioni vengono utilizzate dal server per offrire quel determinato contenuto.

I dati cache vengono memorizzati su un server e pertanto, in fase di caricamento del contenuto, i dati non vengono richiesti ogni qualvolta viene effettuato l’accesso su quella pagina ma, al contrario, prelevati direttamente dal server, facendo in modo che le pagine vengano caricate con maggior rapidità.

Naturalmente occorre anche sistemare i vari dati, ottimizzandoli e facendo in modo che questi possano essere realmente utili a chi decide di usufruire di tale tecnologia, migliorando notevolmente la navigazione sul proprio sito internet ed evitando potenziali complicanze che rendono l’utilizzo della piattaforma poco gradevole.

Il caching permette di riutilizzare in modo efficiente dati già recuperati o elaborati.
Tutti i dati gestiti del database gestiti con cache si trovano nella memoria principale del server, non accumulano alcun ritardo e possono usare algoritmi più semplici per accedere ai dati, sfruttando di meno la CPU. In genere, l’esecuzione di un’operazione richiede meno di un millisecondo.

Redis è un key-value store open source residente in memoria con persistenza facoltativa ed è installato di default su tutti i nostri cloud server dedicati.

Il busting della cache risolve il problema di memorizzazione nella cache del browser utilizzando un identificatore di versione del file univoco per comunicare al browser che è disponibile una nuova versione del file. Pertanto, il browser non recupera il vecchio file dalla cache, ma piuttosto effettua una richiesta al server di origine per il nuovo file.

SLA – I service level agreement (accordo sul livello del servizio)

In questo caso si fa riferimento a degli accordi veri e propri che necessitano di essere rispettati dal provider del servizio, i cui parametri devono essere mantenuti durante tutta la durata del contratto.

Per esempio se il provider assicura una velocità di risposta del sito e di download che si assestano su un nuovo livello, occorre necessariamente che chi offre il servizio mantenga quei parametri che vengono descritti.

Pertanto bisogna tenere sotto controllo questo aspetto, in maniera tale che il risultato finale possa essere ottimale e in grado di rispecchiare perfettamente tutte le proprie esigenze.

Di conseguenza, nel caso in cui i suddetti tipi di parametri non vengano mantenuti, si può passare alla richiesta del risarcimento per il mancato parametro.

Perciò la scelta deve essere necessariamente svolta con attenzione dato che, in caso contrario, si rischia effettivamente di non raggiungere il massimo grado di soddisfazione e soprattutto si potrebbe rimanere delusi dal tipo di servizio che si sfrutta.

La definizione dello SLA è basata sulla determinazione da parte del cliente del livello di servizio ideale a garanzia del suo business.

Il nostro SLA è pubblico e viene applicato a ogni livello di prodotto o servizio. Riconosce ai nostri clienti un accredito pari a 24 volte il tempo di blocco operativo subito.

Un Service Level Agreement deve essere molto chiaro e indicare precisamente le metriche in base al quale il servizio stesso verrà valutato. Lo SLA deve sempre indicare le compensazioni previste per i disservizi subiti.

CDN – Content Delivery Network o Content Distribution Network

“Rete per la consegna di contenuti”. E’ un sistema di computer collegati in rete attraverso Internet, che collaborano in maniera trasparente, sotto forma di sistema distribuito, per distribuire contenuti.
I nodi CDN sono geograficamente distribuiti, spesso connessi a diverse dorsali. Un sistema centralizzato con unico server centrale non sarebbe in grado di soddisfare le molteplici richieste di servizio da parte di numerosi utenti. In altre parole la CDN (Content Delivery Network) permette la distribuzione di dati, video, applicazioni e API a livello globale agli utenti con latenza minima, velocità di trasferimento elevata, il tutto in un ambiente amichevole per gli sviluppatori.

Le ottimizzazioni derivate dall’applicazione di una CDN possono portare come vantaggi alla riduzione dei costi per l’ampiezza di banda, o il miglioramento delle prestazioni, o entrambi.

Noi ad esempio forniamo una soluzione che sfrutta uno dei nostri datacenter come principale hosting dei dati, uno dei nostri datacenter connessi direttamente per la gestione dei backup e disaster recovery ed infine una CDN CloudFlare per la distribuzione dei dati statici.

Il termine nodo nelle reti internet indica genericamente un dispositivo ricetrasmittente di elaborazione che può essere posizionato ai bordi della rete stessa, nodo terminale (host) oppure al suo interno come nodo di transito ovvero di commutazione tra varie linee di uscita ad esempio nella rete di trasporto.

Load Balancing (bilanciamento di carico)

Load balancing, ovvero la suddivisione del carico di elaborazione delle informazioni.

Ciò permette al sito di essere più rapido e garantire una risposta maggiormente precisa ogni qualvolta venga compiuta un’azione da parte di un visitatore, che può essere la richiesta di un servizio oppure l’utilizzo di una pagina.
Affinché sia possibile migliorare la scalabilità, ovvero la suddivisione del carico di lavoro del sito, occorre creare diversi cluster e sfruttare vari server, i quali devono comunicare tra di loro ed essere attentamente monitorati.
Questo è fondamentale in quanto, nel caso un server dovesse essere soggetto a problematiche, subito subentra quello in cui sono contenute le medesime informazioni, permettendo così al visitatore di poter usufruire dei diversi tipi di dati o servizi.

Per esempio, se si sfruttano 15 cluster, le diverse domande vengono suddivise tra di essi: ciò permette di rendere veloci le risposte.
Creare delle copie di cluster e porle nei vari server che si sfruttano consente di mantenere ai massimi livelli l’affidabilità del sito, prevenendo quindi ogni potenziale problematica.

I sistemi di load balancing in genere integrano dei sistemi di monitoraggio che escludono automaticamente dal cluster i server non raggiungibili ed evitano in questo modo di far fallire una porzione delle richieste di servizio degli utenti.

I nostri sistemi sfruttano l’architettura full high availability (HA) cioè anche il sistema di load balancing è costituito da un cluster in HA.

IOPS (operazioni input/output al secondo) – molto importante in cloud hosting!
La memoria RAM grazie alle elevate capacità di gestione IOPS (operazioni input/output al secondo) è il supporto preferito per i motori di caching in memoria, le prestazioni di recupero dei dati sono migliori e i costi su larga scala ridotti.