L’importanza del backup dei siti web

Gli imprevisti sono sempre dietro l’angolo e i problemi informatici possono sorgere in qualsiasi momento e mettere a repentaglio il funzionamento del tuo sito web.

I backup non servono solo in caso di attacchi hacker, poiché si può rischiare di corrompere il proprio sito anche a causa di aggiornamenti non riusciti del CMS al quale ci si affida o a uno dei plug-in installati.

Per questo mettere in sicurezza i dati è fondamentale per garantire la continuità operativa del sito.

Per backup si intende la copia esatta di tutte le componenti del sito web, che comprendono file di codice del sito, tutti i database, le immagini e le componenti aggiuntive come temi e plug-in utilizzati per la realizzazione, e la successiva archiviazione in un luogo sicuro.

Questo renderà più veloce il ripristino del sito nel caso in cui l’originale venga danneggiato, corrotto o cancellato, senza bisogno di doverlo ricostruire da zero.

Per eseguire il backup del sito si può:

  • Utilizzare il sistema di backup integrato dalla piattaforma di hosting alla quale ci si affida (ad esempio Plesk o cPanel), la soluzione più veloce e pratica;
  • Utilizzare servizi di backup a pagamento, che garantiscono backup regolari senza doversene preoccupare in prima persona;
  • Eseguirlo manualmente, opzione che richiede più tempo ma che garantisce un maggior controllo sui dati e si rivela particolarmente utile se si deve ricaricare il backup su un tipo di account hosting differente.

Esistono tre tipologie di backup:

  • Backup completo, che consiste nella copia di tutti i dati che vengono archiviati consentendo di ripristinare il sito in maniera completa in caso di necessità. Questo richiederà maggior tempo e spazio occupato;
  • Backup differenziale, che si concentra sulla copia dei dati modificati rispetto all’ultimo backup completo;
  • Backup incrementale, che prevede la copia dei dati modificati dall’ultimo backup, tenendo conto sia del backup completo che dei successivi backup differenziali.

Ogni quanto eseguire il backup del sito?

Per essere utile, il backup del sito deve essere fatto periodicamente, in modo tale da archiviare la copia più aggiornata possibile.

Non esistono intervalli di tempo ottimali, la cadenza con cui andrebbe eseguito il backup dipende dalla quantità di dati e contenuti realizzati e caricati ogni giorno. Se le modifiche al sito non sono frequenti si può optare per backup mensili, ma in alcuni casi è inevitabile eseguire backup giornalieri.

Ripristinare il sito web

Prima di effettuare il restore, o ripristino del sito web con tutti i suoi file in una versione attiva e funzionante è consigliabile cancellare i file residui del sito non più attivo e svuotare il database.

La procedura di ripristino del sito da backup varia in base alle impostazioni dell’hosting provider, nella maggior parte dei casi basta selezionare i file e database da ripristinare.

Una volta che l’operazione di ripristino è stata effettuata, prima di verificare che il restore sia andato a buon fine e che il sito sia tornato a funzionare correttamente, ricorda di svuotare la cache.

Testare i Web server: test di carico e stress test

Le performance di un sito web possono dipendere da svariati fattori come il server, i contenuti, l’asset, lo script, il traffico, i framework, il database, etc. quindi è difficile individuare immediatamente la fonte di alcune problematiche che compromettono metriche fondamentali per il posizionamento SEO del sito e per la sua visibilità online.

Sia prima che dopo la pubblicazione di un sito web è consigliabile fare dei test su quanto sviluppato, che siano in grado di fornire un quadro della performance del sito, individuando colli di bottiglia e problemi di usabilità, per intervenire e migliorare le prestazioni dove necessario.

Ci sono due tipologie di test delle prestazioni che si eseguono sui web server:

  • Test di carico, che hanno lo scopo di esaminare il comportamento del sistema in condizioni di carico normali, simulandolo. Attraverso questo si evidenzia la reattività, la stabilità, la scalabilità, l’affidabilità, la velocità e l’utilizzo delle risorse del software e dell’infrastruttura.
  • Stress test, che esaminano il comportamento del sistema in condizioni estreme fino a determinare la quantità massima di lavoro che un server è in grado di gestire senza che si rallentino i tempi di risposta. Si cercano perdite di memoria, rallentamenti, problemi di sicurezza e danneggiamento dei dati, osservando come si comporta e se si ripristina correttamente. La maggior parte dei siti web è soggetta a livelli di traffico abbastanza regolari ma potrebbero comunque presentarsi occasioni con carichi anomali.

Tools per i test

Esistono diversi tools con i quali eseguire i test, per i test di carico possiamo affidarci a:

  • Loader.io, strumento in cloud semplice da utilizzare e che permette di simulare carichi crescenti e attività diverse, anche su siti in sviluppo e aree riservate.
  • Locust, strumento versatile che ha come punto di forza la scalabilità, ovvero la possibilità di espansione potenzialmente infinita.
  • Apache JMeter, applicazione desktop open source, inizialmente creata per testare le applicazioni web, successivamente ha esteso i test a qualsiasi tipologia si software.

Mentre per gli stress test:

  • Apache Bench, open source di facile utilizzo e comprensione.
  • Siege, che può sottoporre a stress test un singolo URL con un numero definito di utenti o più URL in memoria e testarli contemporaneamente.
  • Funkload che permette di eseguire test su funzionalità, tempi di caricamento, performance, longevità e stress. Supporta inoltre i test sulle applicazioni web e mobile.

Le metriche e KPI

Scegliere le giuste metriche e KPI aiuta a valutare correttamente le prestazioni di un sistema, le più rilevanti sono:

  • Misurazione della scalabilità e delle prestazioni all’aumentare delle richieste http;
  • Tempo pagina necessario per recuperare tutte le informazioni in una pagina e pagine al secondo;
  • Throughput, dimensione dei dati di risposta al secondo;
  • Tempi di risposta dell’applicazione;
  • Hit time, tempo medio per recuperare un’immagine o una pagina;
  • Time To First Byte, tempo necessario per restituire il primo byte di dati o informazioni;
  • Connessioni non riuscite;
  • Time out, numero di richieste scadute;
  • Hit non riusciti, numero di tentativi falliti effettuati dal sistema (collegamenti interrotti o immagini non visualizzate);