[section_title title=Parte 2]
Ora, in genere tutti i provider offrono servizi di bilanciamento del carico con una scalabilità di questo tipo. Ciò che invece farebbe la differenza è la capacità di ottimizzare lato server (virtuale o fisico) l’utilizzo delle risorse, per sfruttare al massimo le capacità senza giungere a compromessi con altri aspetti essenziali come le prestazioni. Questo obiettivo si può raggiungere utilizzando una varietà di ottimizzazioni TCP pensate per scaricare il sovraccarico del protocollo dal server (istanza), come il TCP Multiplexing e le capacità di buffering di risposta, che consentono, ad esempio, di migliorare la portata dei server mediamente del 25%. Ovviamente se un server è in grado di processare il 25% in più delle richieste degli utenti, non sarà necessario scalare così rapidamente. In altre parole, non si dovranno sostenere costi aggiuntivi così spesso per ottenere più istanze. Un aspetto decisamente interessante!
I servizi di load balancing offerti in genere dai provider implicano l’utilizzo di algoritmi di bilanciamento del carico, da quello di base, round robin, fino ad algoritmi più sofisticati.
Anche da questo punto di vista scalare in modo efficiente può essere problematico. L’algoritmo di base infatti è agnostico rispetto alle applicazioni e al carico del server e non si preoccupa se una prima istanza selezionata ha 400 connessioni mentre una seconda ne ha solo 50, continua comunque a inviare la richiesta rispettando la fila.
E’ vero che non è automatico, un minor numero di collegamenti non significa sempre possedere l’algoritmo migliore, ma è sicuramente possibile ottenere una conoscenza maggiore del carico dell’applicazione. Ad esempio, molti algoritmi di bilanciamento promossi dalle aziende prendono in considerazione il carico rispetto a una determinata istanza applicativa – valutando i pesi o conteggiando i collegamenti. Piuttosto che distribuire semplicemente le richieste, tentano di allocarle efficacemente ed equamente in modo da massimizzare l’utilizzo delle risorse senza compromettere le prestazioni e la disponibilità.
Pertanto, l’utilizzo di servizi semplicistici di bilanciamento del carico con il supporto di algoritmi rudimentali e una visione apatica rispetto al carico dei server (istanze) porta a distribuire il carico in modo diseguale.
A qualcosa, in realtà ,questi servizi di bilanciamento del carico servono: a garantire che vengano lanciate più istanze e utilizzata una larghezza di banda maggiore, comportando necessariamente dei costi aggiuntivi.
In sintesi, il servizio di bilanciamento del carico che si sceglie di adottare influisce sul costo complessivo del cloud. Certo, non rappresenta il primo e nemmeno l’unico aspetto alla base della considerazione iniziale di organizzazioni come Evernote, ma certamente contribuisce anch’esso.