Qualunque sito Web per poter funzionare ed essere sempre raggiungibile ha bisogno di uno spazio dedicato su un server in cui archiviare i file e i dati necessari al caricamento delle pagine: in questo senso, esistono diverse tipologie di server e di servizi di hosting e in particolare il VPS, acronimo di Virtual Private Server, è una tipologia di hosting che offre i vantaggi prestazionali di un server dedicato con quelli economici di un server condiviso.
Per comprendere meglio questo concetto partiamo da un adagio ricorrente sul web: “non esiste il cloud, esiste solo il computer di qualcun altro”. È ironico, ma tutto sommato reale: quando utilizziamo dello spazio web per pubblicare il nostro sito, per fare il backup dei nostri dati o per rendere disponibile la nostra web app, stiamo utilizzando i dischi, il processore, la RAM di un server che qualcuno ci rende disponibile come servizio.
Questo/i server possono essere dislocati ovviamente ovunque nel mondo, possono essere fisici o virtuali. Di norma sono server virtuali, ovvero realizzati sulla base di una macchina fisica molto potente, su cui si fanno “girare” decine o a volte centinaia di server virtuali.
Indice degli argomenti
I concetti base dell’hosting web
Parlando di server virtuali, però, è opportuno analizzare le principali tipologie disponibili.
Intanto, come abbiamo detto, si parla normalmente di hosting quando si acquista uno spazio su cui solitamente si va a caricare il proprio sito web. È una soluzione spesso molto economica e funzionale, soprattutto nel caso di siti di piccole dimensioni e con un numero di visitatori limitato.
Nel caso del semplice hosting, infatti, le possibilità di interazione con il server sono limitate.
Si possono comunque utilizzare dei database (spesso da acquistare a parte), un servizio FPT per fare l’upload ed il download dei contenuti e, in genere, i piani di hosting più completi offrono anche la possibilità di effettuare un backup automatico su base settimanale o mensile.
Altre limitazioni del semplice hosting web riguardano anche i linguaggi e i framework utilizzabili nella costruzione delle pagine del nostro sito web: si possono utilizzare quelli previsti (e nelle versioni previste) dal fornitore del servizio e non installarne altri.
Per essere chiari, ad esempio, se volessi usare un hosting standard per pubblicare un sito dinamico scritto in Python utilizzando un mini-framework tipo Flask, ciò sarebbe praticamente sempre impossibile.
VPS: i vantaggi di un Virtual Private Server
Cosa manca alle soluzioni hosting? Sostanzialmente due cose: un accesso SSH e (o con) le credenziali di root.
Poter accedere alla consolle di un server (virtuale) come se ci si trovasse di fronte ad esso e disporre delle credenziali di root, ci permette di gestire e impostare il server come meglio crediamo, installando pacchetti e software secondo le necessità.
Potremmo, ad esempio, installare un server web per pubblicare il nostro sito, ma questa volta saremo in grado di scegliere non solo quale web server usare (per esempio Apache o Nginx) ma anche la tecnologia su cui basare le pagine che andremo ad ospitare (quale linguaggio di programmazione e in quale sua versione).
Ovviamente, potremmo ospitare un numero di siti limitato solamente dalla larghezza di banda disponibile e dalla potenza del server virtuale scelto.
I Virtual Private Server, di norma, forniscono un indirizzo IP statico (ipv4), anche se solitamente sono acquistabili ulteriori indirizzi IP statici. A quel punto, è sufficiente registrare un dominio e modificare il puntamento del suo record A sull’IP del nostro VPS, per avere il nostro sito web raggiungibile con il nome di dominio prescelto.
Gestendo, ad esempio, con Apache i serveralias potremo far puntare diversi domini a pagine web differenti, ospitando così svariati siti web.
Gli utilizzi sono virtualmente illimitati, si potrebbe agevolmente creare un server VoIP per gestire il proprio centralino virtuale, ad esempio installando Asterisk, oppure creare un sistema di backup/sincronizzazione dei dati dei PC aziendali su cloud, installando per esempio Owncloud o Nextcloud.
Infine, un VPS può essere di grande utilità anche per avere a disposizione un ambiente di test/sviluppo.
I parametri di scelta di un VPS
Finora ho fatto implicitamente riferimento a VPS basati su Linux perché sono quelli che prediligo utilizzare, anche se sono spesso (ma non sempre) disponibili su piattaforma Windows. In tutti e due i casi, di norma, si può scegliere la distribuzione o la versione che si preferisce.
Nello scegliere una VPS i parametri da prendere in considerazione sono, principalmente, lo spazio su disco concesso, la quantità di memoria RAM, il tipo di processore e la banda disponibile, sia come ampiezza che come disponibilità.
Per i dischi la scelta è tra maggiore capienza, con hard disk meccanici, o maggiore velocità scegliendo dischi SSD. A volte vengono proposte soluzioni ibride in cui lo storage avviene su dischi meccanici, usando un SSD come boost per velocizzarli.
La memoria RAM va scelta solamente in base alle necessità specifiche dell’utilizzo che si intende fare del VPS, come la “pesantezza” delle applicazioni che lo utilizzeranno o la quantità di esse che dovranno essere attive in contemporanea.
Per quanto riguarda la scelta della CPU, pur trattandosi praticamente sempre di processori prestanti, da server, è possibile sceglierne sulla stessa base di quanto detto per la quantità di memoria RAM, includendo in ciò il numero di core dedicato (ricordiamo che si parla di macchine virtuali, quindi il gestore può accordarci l’uso di un numero di core del processore a sua scelta).
Discorso a parte va fatto per la banda disponibile: a volte si ha un limite di consumo di banda dopo il quale ci verrà chiesto un pagamento per l’esubero. Si trovano comunque offerte con “banda illimitata” in cui non esiste un limite di consumo a cui prestare attenzione (raccomando quest’ultima tipologia vivamente).
L’ampiezza di banda disponibile o a noi dedicata è un parametro da valutare ancora una volta in base alle necessità riferite all’uso prefissato.
Sia per le soluzioni in hosting che per quelle con VPS, infine, dovremmo comunque sempre tenere in conto che la macchina fisica sarà “condivisa” con diversi (molti, a volte) altri fruitori del servizio. Nel caso si necessitasse della maggior potenza possibile, senza “vicini”, si dovrebbero prendere in considerazione soluzioni quali i server dedicati o l’housing.
Server dedicati
Un server dedicato, è una soluzione ben più onerosa dal punto di vista economico, essendo una macchina, come dice il nome, a noi dedicata.
Housing
L’housing è una soluzione simile, a parte il fatto che il server lo dobbiamo fornire noi ed è di nostra proprietà; viene posto nel data center prescelto ed usufruisce di tutta l’infrastruttura, sistemi di UPS, connettività, sistemi antincendio e via dicendo.
Nel descrivere le diverse possibili soluzioni oggi disponibili ho dato per scontato che fossimo noi a installare i software e i pacchetti necessari (a parte il sistema operativo), gestire, manutenere e proteggere il sistema dal punto di vista software. Ciò, ovviamente, richiede un know-how in base a ciò che si sta realizzando, non sempre alla portata di tutti.
È comunque possibile usufruire di server “gestiti” e anche in questo caso di queste incombenze si farà carico il fornitore del servizio.
Le soluzioni SaaS (Software as a Service)
Un capitolo a parte è quello dei VPS “a consumo” che rientrano più direttamente nel concetto di SaaS (Software as a Service) in cui si va a pagare il tempo di utilizzo piuttosto che un canone mensile o annuale.
Il punto forte di questo approccio è la scalabilità immediata dei sistemi: è possibile, cioè, aggiungere spazio su disco in pochi clic del mouse, passare a un sistema di potenza superiore e così via, anche solo al momento in cui questo upgrade è necessario, per poi ripassare ad un sistema inferiore, meno costoso, quando questo ridiventi sufficiente.