Come ottenere di più dal proprio server aziendale

Quando si hanno limiti hardware sul server aziendale, ossia di numero di CPU, o unità computazionali, RAM e disco fisso, rimangono solo scelte software o/e organizzative. Un po’ come quando si vuole coprire il maggior numero di fermate in funzione della flotta degli autobus e un tempo di attesa ragionevole. 

 

In un precedente articolo, di cui consiglio caldamente la lettura per capire più il discorso, avevo parlato di docker. Si tratta di un modo veloce e oramai uno standard per avere servizi impacchettati, pronti per essere buttati in padella e consumati. Incapsulano anche il sistema operativo. Quindi possiamo considerarla una macchina virtuale già pronta. Su Linux esiste una cosa simile, di nome lxd. 

 

Uno dei problemi di docker ha a che fare con la dimensione dell’immagine, da cui deriva il container (il servizio). Perché ogni immagine contiene il sistema operativo (che nel migliore dei casi occupa 5MB), software (Python, R, etc.), librerie (dipendenze) e altro. Chiaramente esistono degli stratagemmi per ridurre queste dimensioni. Ma se si ha un server, fisico o virtuale, con circa 128GB di disco fisso, si sta strettini  se si considerano anche la copia di sicurezza dei file (backup) e servizi che usano tanta memoria a causa di ciò che conservano. 

Un esempio concreto?

Il cruscotto dati basato sulla libreria shiny di R. 

 

Mezzo GB può sembrare poco, ma se consideri che si tratta di un solo servizio, diventa tanto. 

Prendiamo un altro esempio: Nextcloud, una alternativa a google cloud:

La versione più leggera, con alpine linux, pesa quasi 300MB (lo vedi a destra). Non poco, se vogliamo shiny fa più impressione visto che fa “meno cose”. E nextcloud, proprio per quello che fa, risulta uno di quei servizi che col tempo occupa più spazio: serve per immagazzinare documenti, foto, etc. File che pesano molto di più dei dati strutturati come certi file Excel o google sheets. Per fare un paragone, alla data di scrittura di questo articolo, tutti i materiali relativi a STATiCalmo pesano più di 30GB. Con una crescita che possiamo stimare a 15GB all’anno. 

 

Su un altro sistema operativo più di nicchia di Ubuntu (Linux), FreeBSD,  abbiamo le prigioni (jails). Ricordi quando a scuola o all’università potevi accedere al tuo utente da qualsiasi computer? Ogni utente aveva il suo spazio su disco fisso, di solito meno di 100MB. Le prigioni funzionano in maniera vagamente simile: un po’ come avere più utenti amministratori su Windows, ma isolati, la chiave di lettura per capire la parola prigioni. Infatti a scuola poteva succedere che si poteva entrare nello spazio dell’amico e fare “scherzi”. Le prigioni consentono quindi di installare servizi isolati e di avere anche dei backup. 

Rispetto a docker però le prigioni richiedono l’installazione manuale dei servizi. A livello di prestazioni questo approccio dà dei vantaggi, anche perché non fa partire un altro sistema operativo, ma la cosa risulta dibattuta. A livello di spazio, si salva qualcosa derivante, ancora una volta, il non installare il sistema operativo ad ogni servizio come su docker. Come nota ricordo che le immagini più leggere in genere hanno alpine linux.

 

Non conviene tagliare la carne di porco con la stessa strumentazione della carne di manzo. 

Allo stesso modo possono avvenire brutte sorprese se non si isolano gli ambienti di lavoro, come anticipato anche con la soluzione precedente. Ogni linguaggio di programmazione consente di creare degli ambienti virtuali (venv su python, renv su R), in modo che le librerie installate a livello di sistema (computer) non facciano a cazzotti con le specifiche di librerie richieste per un progetto/servizio. Il “funziona sul mio computer” ha portato ad usare docker, che fornisce ambienti riproducibili (perché impacchetta software e librerie). Come intuisci, si tratta dell’ultimo tipo di isolamento perché avviene solo sul software di sviluppo. Mentre nel caso precedente stavamo prima del software. E con docker stiamo addirittura fuori dal sistema operativo. A livello di spazio può sembrare il più efficiente, perché “si butta” solo lo spazio delle librerie o dipendenze che si ripetono. Però per ora, ammetto, non ho mai sentito servizi schierati per l’uso (messi in produzione) utilizzando ambienti virtuali. Solo servizi in fase di test/sviluppo. 

 

Come conclusione vale la pena ricordare anche che bisogna decidere con criterio quanti servizi ospitare in un server singolo. Dipende anche dalle dimensioni dell’azienda, ma personalmente non metterei nextcloud (una alternativa a Google Drive / One Drive) nello stesso server che ospita il sito web aziendale fatto in casa. Come decidere? In basso all’uso delle risorse computazionali e i servizi critici. Metro decisionale breve ma per nulla banale. 

 

Le grosse aziende si preoccupano meno delle ottimizzazioni menzionate, perché tendenzialmente il cloud permette di aggiungere risorse computazionali in maniera flessibile. Fin quando qualcosa va storto e qualche controller (un contabile particolare) si accorge di fatture con cifre assurde

 

Visto che le PMI hanno più rischi esistenziali collegati ai costi, possiamo sentirci in una chiamata gratuita per anticipare quando avrai bisogno di un servizio del genere.

Privacy Policy
it_ITItalian