![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Ogni volta che il tuo sistema cresce, il traffico aumenta, sempre più utenti utilizzano i tuoi prodotti, i server iniziano a rispondere più lentamente, i tempi di inattività causano problemi alla tua attività, quindi inizi a pensare alla scalabilità.
Esistono due strategie principali per il ridimensionamento: verticale e orizzontale.
Il ridimensionamento verticale mira ad aumentare la potenza del sistema aggiungendo solitamente più CPU e RAM ai server.
Al contrario, il ridimensionamento orizzontale si concentra sulla duplicazione (o clonazione) dei server nel pool di risorse.
Ulteriori informazioni:
Il ridimensionamento verticale è l'opzione migliore per un sistema a basso traffico perché è l'approccio più accessibile per gestire la crescita senza introdurre complessità aggiuntiva. Non devi preoccuparti di implementare strategie per un gruppo di risorse, dell'elasticità del pool di risorse, della statelessness del tuo server, della cache distribuita e così via.
Tuttavia, il ridimensionamento verticale presenta gravi svantaggi
Il ridimensionamento orizzontale elimina questi problemi clonando i server applicativi e incorporando un componente come un bilanciatore del carico .
Un bilanciatore del carico distribuisce il traffico sui tuoi server utilizzando algoritmi specifici come:
Tuttavia, presenta diversi svantaggi:
Per far sì che due dispositivi su Internet comunichino tra loro, i sistemi sottostanti devono seguire protocolli specifici. Tutti hanno sentito parlare del modello OSI, che descrive sette livelli che i sistemi informatici utilizzano per comunicare su una rete. Sebbene Internet moderna sia basata su un modello di stack di protocollo TCP/IP più semplice, il modello OSI è ampiamente utilizzato, poiché aiuta a visualizzare e comunicare il funzionamento delle reti e aiuta a isolare e risolvere i problemi di rete.
La maggior parte delle soluzioni di bilanciamento del carico del settore utilizza i termini L4 e L7, dove L4 si riferisce al livello di trasporto nel modello OSI e L7 si riferisce al livello applicativo.
Il bilanciatore del carico L4 è ancora L2/L3 poiché utilizza dati provenienti dai livelli inferiori, come indirizzo IP e numero di porta.
È più sicuro e performante poiché il contenuto dei dati non viene preso in considerazione nelle decisioni di routing
La stessa connessione TCP è valida tra client e server, il che aiuta a prevenire il superamento del limite di connessioni TCP disponibili su un bilanciatore di carico
D'altro canto, il bilanciatore del carico L7 opera a livello applicativo nel modello OSI
È possibile prendere decisioni intelligenti in base al percorso URL, alle intestazioni e al contenuto
Memorizzazione nella cache
Il bilanciatore di carico è un componente essenziale quando si applica il ridimensionamento orizzontale per gestire sistemi ad alto traffico. Esistono due tipi principali di bilanciatori di carico L4 e L7.
Il bilanciatore di carico L4 è molto più sicuro e performante a causa delle limitazioni nel prendere decisioni intelligenti
Il bilanciatore di carico L7 funziona in modo da fornire decisioni di routing intelligenti grazie al costo dell'efficienza e della sicurezza
La scelta del tipo appropriato dipende dai requisiti del sistema e deve essere valutata attentamente, cercando un ragionevole equilibrio tra l'applicazione dei principi di sicurezza e l'eliminazione dei colli di bottiglia nelle prestazioni.
Pubblicato anche qui.