Il server database: dietro le quinte di hwupgrade

Il server database: dietro le quinte di hwupgrade

Il server database del forum di discussione è indubbiamente l'elemento più critico dell'intera infrastruttura di server che utilizziamo per pubblicare quotidianamente i contenuti di Hardware Upgrade. Vediamone le basi di funzionamento tecnico, e quali considerazioni abbiano guidato la scelta del nuovo server in produzione

di pubblicato il nel canale Server e Workstation
 

I server dietro ad un sito web

Per deformazione professionale, in Hardware Upgrade, tendiamo ad analizzare i numeri con i quali abbiamo a che fare. Molto spesso sono i risultati di benchmark prestazionali eseguiti per l'ultimo articolo pubblicato, ma a volte prendiamo i dati di traffico generati per capire alcune dinamiche dietro la pubblicazione dei contenuti. Un valore che spesso viene citato per definire quanto di successo sia un sito web è il numero di pageviews, cioè di pagine visualizzate dagli utenti, venga generato ogni mese; partendo da questo valore è possibile ricavare degli indicatori di riferimento non utilizzati abitualmente, ma decisamente singolari.

Ad esempio, quante pagine al secondo di media vengono aperte dagli utenti del sito: ipotizzando un traffico sempre costante nel corso della giornata, ogni secondo i server di Hardware Upgrade inviano circa 11 pagine; detto in altro modo, nel tempo trascorso per leggere questi primi due paragrafi dell'articolo i server di Hardware Upgrade hanno inviato più di 300 pagine ai propri lettori. In momenti di picco il numero di pagine generate al secondo cresce considerevolmente, compensando quelle ore della notte durante le quali sono solo pochi collegati davanti ad un PC.

Ogni pagina è composta da una parte di layout grafico, nella forma di un template, e da una parte di contenuti che sono prelevati da un server database: questo accade sia per la parte editoriale, nella forma di notizie e articoli, che per il forum di discussione. I server rispondono ovviamente a questa struttura: abbiamo alcuni server, definiti web, che generano le pagine richiamate dagli utenti sui loro PC e visualizzate da questi ultimi, mentre altri server operano esclusivamente come database contenendo i dati che verranno richiamati dai server web.

Per poter gestire un livello di traffico come quello generato ogni giorno da Hardware Upgrade è necessaria una struttura di server complessa, nella quale cioè siano utilizzati vari server ciascuno dei quali specializzato per uno specifico ambito di utilizzo. Un server, ad esempio, è utilizzato esclusivamente per la gestione delle mail in ingresso, mentre un secondo server amministra l'invio delle email delle newsletter e delle notifiche del forum. Nel corso degli anni abbiamo adeguato la nostra struttura inserendo nuovi server e aggiornandone alcuni in produzione da anni, giungendo a più di 20 server attualmente in sala dati.

Un esempio pratico dell'evoluzione della struttura server è data dal cluster di server web, cioè delle macchine che vengono utilizzate esclusivamente per inviare le pagine agli utenti: quella attualmente in uso è con bilanciamento di carico, con un server di load balancing ridondato con una macchina identica che riceve tutte le richieste di contenuti da parte degli utenti ruotandole in modo pesato sui 6 server web che compongono il cluster attualmente. Ogni server web del cluster, ricevuta, la richiesta dell'utente per una specifica pagina, prenderà i contenuti necessari dal server database e comporrà la pagina, inviandola quindi all'utente che l'ha richiesta senza dover per questo passare attraverso il server di load balancing. La struttura di server web in load balancing è nata parecchi anni fa, inizialmente utilizzando due server rack a 1 unità ciascuno con due processori Intel Pentium 3 da 1 GHz di clock. Al momento attuale utilizziamo per il cluster web 6 server con ciascuno due processori Opteron Dual Core, per un totale di 24 core a disposizione per questo genere di applicazione.

La struttura è ovviamente cresciuta nel corso degli anni su due livelli: da una parte aumentando il numero dei server web, così che il numero di richieste fosse bilanciato su più macchine, e dall'altra sostituendo i processori di ogni server così da aumentarne la potenza elaborativa. Alcuni mesi fa abbiamo di fatto raddoppiato la potenza elaborativa del cluster web aggiornando tutti i server da processori AMD Opteron single core a versioni dual core, avantaggiandoci in questo dal mantenimento dello stesso tipo di Socket e dai requisiti di alimentazione identici tra cpu Opteron single e dual core.

Il cluster web è sicuramente interessante, ma la parte critica per il corretto funzionamento di tutta l'infrastruttura di pubblicazione dei contenuti di Hardware Upgrade è data dai server database. Parliamo di più server, in quanto il carico ha portato a dividere su differenti server il tipo di operazioni svolte:

  • server database per i contenuti editoriali del sito;
  • server database del forum di discussione;
  • server database per le ricerche di sito e forum di discussione.

Il primo e ultimo server hanno livelli di carico simili tra di loro e non eccessivamente impegnativi dal punto di vista prestazionale; a creare invece non pochi grattacapi è il server database del forum, in quanto il numero di richieste che giornalmente riceviamo per i contenuti del forum è molto elevato e questo si somma alla dimensione complessiva del database. Abbiamo recentemente programmato un aggiornamento del server database utilizzato per il forum di Hardware Upgrade, e approfittiamo di questo nuovo acquisto per delineare quelle che siano le caratteristiche tecniche di un server database così come utilizzato in un ambiente di produzione effettivo.

 
^