La potenza di elaborazione è fondamentale per le prestazioni del software. Probabilmente noterai rapidamente il grande salto di prestazioni quando esegui l'aggiornamento a un nuovo computer da uno di pochi anni. La legge di Moore descrive che il numero di transistor nelle CPU è raddoppiato all'incirca ogni due anni da quando la CPU è stata inventata per la prima volta. Ciò ha portato a un aumento consistente della potenza di calcolo, guidando un ciclo di aggiornamento regolare.
Nonostante le elevate prestazioni di un computer di fascia alta attuale, molte attività sono semplicemente troppe per essere gestite da un computer in un lasso di tempo ragionevole. Per fortuna, la maggior parte di queste attività non influisce sull'utente domestico medio o anche su molti lavori d'ufficio standard. I carichi di lavoro professionali specializzati, tuttavia, sono i punti in cui inizierai a trovare questo tipo di carichi di lavoro.
Un'opzione per gestire questo sarebbe assegnare le persone rilevanti a computer di fascia alta più potenti. Tuttavia, questa strategia è costosa e, in molti casi, non farebbe la differenza in quanto i requisiti di elaborazione sono semplicemente troppo elevati.
Le server farm sono l'altra opzione, piuttosto che cercare di stipare sempre più prestazioni in un dispositivo personale, avendo un dispositivo per dipendente pertinente e non avendo ancora le prestazioni necessarie. Una server farm essenzialmente esternalizza la potenza di elaborazione. In questo caso, ciò significa avere molti server raggruppati insieme che eseguono le attività di elaborazione pesanti assegnate alla server farm dal dipendente. Le attività di elaborazione vengono quindi distribuite sui server.
Caratteristiche principali e vantaggi delle server farm
Il fattore determinante di una server farm è che non sei più limitato a un dispositivo che esegue l'elaborazione. Invece, la potenza di elaborazione è fornita da decine, centinaia o addirittura migliaia di server, tutti raggruppati in un cluster.
I server stessi si trovano in genere in una sala server o in un data center. Qui possono essere configurati con connessioni ad alta velocità tra loro e reti ad alta velocità per ricevere il carico di lavoro da elaborare e trasmettere il carico di lavoro completato in tempo utile.
Gestendo attentamente le prestazioni effettive di tutti i server, è possibile ottimizzare le prestazioni complessive da raggiungere a un costo ragionevole. I server vengono generalmente eseguiti 24 ore su 24, 7 giorni su 7, anche se, a seconda del carico di lavoro, ciò potrebbe non essere realizzabile. Correre sempre al massimo delle prestazioni consuma molta energia. Significa anche che è necessario molto raffreddamento, che richiede ancora più potenza. Molte server farm possono funzionare al di sotto delle loro prestazioni di picco per ottenere un rapporto prestazioni per Watt elevato.
![](/f/6e7be30f69954f050ff84ee0c2387856.jpg)
Sottotipi e Variazioni
Nei processi di sviluppo del codice, molti linguaggi richiedono che le applicazioni vengano compilate prima di poter essere eseguite. Questo processo di compilazione richiede molto processore e, in applicazioni di grandi dimensioni, può richiedere ore. Una server farm può aiutare a ridurre il tempo di compilazione offrendo prestazioni superiori a quelle possibili in un singolo computer. Le server farm possono anche essere eseguite 24 ore su 24, 7 giorni su 7, consentendo agli sviluppatori di mettere in coda un processo di compilazione da eseguire durante la notte, pur essendo in grado di spegnere le proprie macchine. Le server farm utilizzate esclusivamente per la compilazione del software possono essere note come compile farm.
Nei ruoli di computer grafica, il tempo di rendering può essere spesso lungo. Questo non è un grosso problema per le immagini fisse, anche se può richiedere tempo. Il rendering video può richiedere molto tempo, soprattutto per i film di classe cinematografica. Non solo le scene sono incredibilmente complesse, ma sono anche ad alta risoluzione e ce ne sono molte, poiché sono necessari molti fotogrammi al secondo. Le server farm dedicate alle attività di rendering possono essere note come rendering farm.
C'è pochissima differenza tra una server farm e un supercomputer. Entrambi sono raccolte estese di server progettati per funzionare insieme per eseguire un'attività. Non c'è una chiara differenza di definizione tra i due. Storicamente, i supercomputer utilizzavano hardware per scopi speciali. Tuttavia, la tendenza attuale nel supercalcolo è quella di utilizzare più componenti server standard.
Un futuro nuvoloso
Le server farm sono costose. Sono affamati di energia, hanno bisogno di molto raffreddamento e hanno bisogno di un'infrastruttura di data center. Anche le server farm sono costose da configurare, con costi hardware iniziali elevati. A peggiorare le cose, devono affrontare l'obsolescenza regolare. Nel settore dei data center di fascia alta è generalmente ritenuto che un data center di 7 anni sia obsoleto. In questo breve tempo, i carichi di lavoro possono aumentare con l'aumento delle richieste di prestazioni.
L'unica vera soluzione a questo è offerta dagli hyperscaler. Gli hyperscaler sono le gigantesche aziende tecnologiche come Google, Amazon e Microsoft che sono abbastanza grandi da costruire e gestire molti enormi data center. Queste aziende affittano le prestazioni di elaborazione dei loro data center come piattaforma cloud. Questo accesso è spesso virtualizzato.
L'idea è che invece di pagare per acquistare ed eseguire l'hardware, noleggi semplicemente l'accesso a ciò di cui hai bisogno, quando ne hai bisogno. Questo ha il fattore favorevole al budget annuale di non avere costi iniziali elevati e ricorrenti. Invece, paghi semplicemente per quello che usi. Utilmente, non sei nemmeno limitato a una configurazione hardware precisa. Supponiamo di avere un carico di lavoro piccolo e relativamente non urgente. In tal caso, puoi semplicemente configurarlo per essere eseguito su un server virtuale più piccolo e, soprattutto, più economico. Questo va anche dall'altra parte. Se hai un progetto grande o urgente, puoi pagare di più per un'istanza virtuale ancora più grande per avere più potenza di elaborazione per finire prima.
Realisticamente, i servizi cloud offrono numerosi vantaggi convincenti rispetto alle server farm. L'unico problema potenziale è il costo, che come servizio commerciale può essere maggiore per unità di elaborazione rispetto a quello di una server farm locale. Vale la pena notare che gli hyperscaler beneficiano delle economie di scala, che filtrano nei loro prezzi.
Conclusione
Una server farm è una raccolta di server, generalmente ubicati in una sala server o in un data center, a cui vengono distribuite le attività che richiedono molta potenza di elaborazione. Ciò offre numerosi vantaggi, tra cui prestazioni elevate e funzionamento 24 ore su 24, 7 giorni su 7. I servizi cloud degli hyperscaler sono la principale opzione concorrente. Offrono numerosi vantaggi interessanti, tra cui la mancanza di costi hardware iniziali e la flessibilità prezzo/prestazioni in base all'attività.