Server e Linux: non possiamo semplicemente installare Windows?

Che aspetto ha davvero un computer server?

Quando ho iniziato a studiare sviluppo, avevo una fantasia piuttosto vaga sul ‘server’. Mi immaginavo un gigantesco supercomputer come in Matrix, con lettere verdi che cadevano come pioggia, infiniti cavi aggrovigliati ovunque e enormi macchine che emettevano luci blu tra rumori meccanici solenni.

Ma la prima server room che ho visto davvero sul lavoro, un IDC, non somigliava per niente a quell’immagine. Quelle macchine sottili montate nei rack, una volta aperte, erano comunque ‘semplici computer’: avevano CPU, RAM e SSD, e non erano poi così diverse dal mio portatile.

Quindi che cosa rende esattamente il mio portatile un ‘PC personale’ e quella macchina dall’aspetto grezzo un ‘server’?

Un server non è una macchina speciale, ma un computer con un ruolo speciale.

Chi serve (Server) vs. chi chiede (Client)

La definizione di server è molto semplice. È quello che ‘serve’, cioè che fornisce qualcosa. Dall’altra parte, il client è quello che fa la richiesta.

In altre parole, anche il mio vecchio portatile diventa un ‘server’ nel momento in cui lo lascio acceso 24 ore su 24 e permetto connessioni esterne. Ma allora perché non usiamo il mio portatile come server? Perché paghiamo per affittare server cloud come AWS EC2 e ci installiamo sopra quel ‘Linux’ che sembra più scomodo da usare?

Perché proprio Linux? (Windows non va bene?)

Windows è davvero comodo. Basta cliccare con il mouse ed è tutto intuitivo. Allora perché gli sviluppatori di server insistono su Linux, che sembra essere nient’altro che uno schermo nero?

1. La GUI è un lusso (costo ed efficienza)

Quando Windows si avvia, compaiono desktop, icone e cursore del mouse. Per mantenere viva tutta questa interfaccia grafica, il computer consuma continuamente CPU e memoria. Ma un server non ha bisogno di un monitor. Può stare da qualche parte dall’altra parte del mondo e fare solo una cosa: elaborare dati. Un server Linux in modalità CLI elimina tutta la grafica e lascia soltanto il testo. Se Windows usa 30 su 100 di potenza per disegnare lo schermo, Linux può dedicare tutti e 100 al servizio vero e proprio.

2. Libertà dagli aggiornamenti forzati (stabilità)

Se usi Windows abbastanza a lungo, prima o poi incontri il classico “Riavvio per installare gli aggiornamenti”. Su un PC personale è solo fastidioso: ti allontani un attimo e poi torni. Ma se un server che deve restare operativo 24/7 decide di spegnersi da solo, allora è un disastro. Linux può spesso andare avanti per anni senza riavviarsi, salvo grandi eventi come un aggiornamento del kernel.

3. Costo delle licenze (denaro)

Windows Server costa caro. A volte il prezzo dipende perfino dal numero di core CPU. Linux, invece, come Ubuntu o CentOS, è per lo più gratuito e open source. Per un’azienda che deve far girare migliaia di server, la risposta è piuttosto ovvia.

Per un server, la grafica appariscente è solo un peso extra.

Perché non installare Linux sopra Windows? (L’inizio della virtualizzazione)

A questo punto un developer alle prime armi, cioè il me del passato, ha un’idea brillante. “Se Windows è più comodo, perché non installiamo Windows Server e facciamo girare Linux dentro come ‘Virtual Machine’?”

Certo che si può. Ma è come montare una tenda dentro una casa e andarci a vivere.

Il padrone di casa, Windows, deve comunque mangiare, e anche l’inquilino, Linux, deve mangiare. Lo spreco di risorse è enorme. Così gli sviluppatori hanno iniziato a porsi una domanda migliore: “Invece di installare un intero sistema operativo pesante, non possiamo isolare ed eseguire solo l’‘ambiente’ di cui abbiamo davvero bisogno?”

Proprio da questa riflessione è nato Docker, cioè la tecnologia dei container.

La prossima storia: un mondo senza mouse

Ora capiamo perché i server hanno abbandonato Windows e scelto Linux. Ma capire qualcosa con la testa e toccarla con mano sono due cose diverse. La prima volta che ti colleghi a un server Linux, non ti accoglie il rassicurante pulsante Start di Windows, ma solo un cursore lampeggiante su uno schermo nero.

La prossima volta vedremo le tecniche di sopravvivenza di base per gestire permessi dei file e controllare un server in questo sconosciuto ambiente di terminale Linux, la CLI, senza usare il mouse.

Lascia un commento