paint-brush
Decodifica dei primitivi di bilanciamento del caricodi@fairday
39,939 letture
39,939 letture

Decodifica dei primitivi di bilanciamento del carico

di Aleksei4m2024/02/26
Read on Terminal Reader
Read this story w/o Javascript

Troppo lungo; Leggere

Quando si ridimensiona il sistema per accogliere un traffico e utenti maggiori, è possibile scegliere tra il ridimensionamento verticale, che aumenta la potenza del server, e il ridimensionamento orizzontale, che comporta la duplicazione dei server. Mentre il ridimensionamento verticale è più semplice, presenta delle limitazioni come i vincoli hardware. Il ridimensionamento orizzontale con i bilanciatori di carico offre flessibilità ma richiede la gestione dell'assenza di stato e l'implementazione di strategie. È essenziale comprendere i bilanciatori di carico L4 e L7, con L4 più sicuro e performante, mentre L7 offre un routing intelligente a scapito dell'efficienza. La scelta dell'approccio giusto dipende dai requisiti di sistema e dal bilanciamento di considerazioni di sicurezza e prestazioni.

People Mentioned

Mention Thumbnail
featured image - Decodifica dei primitivi di bilanciamento del carico
Aleksei HackerNoon profile picture
0-item


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:


Scalabilità verticale

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

  1. Limite hardware poiché è impossibile aggiungere risorse all'infinito
  2. La mancanza di failover e ridondanza aumenta il rischio di tempi di inattività prolungati e perdita di dati


Scalabilità orizzontale

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:


  1. Girone all'italiana
  2. Round-robin ponderato
  3. Approcci basati su hash IP
  4. Metodo di connessione minimo
  5. Metodo di connessione minima ponderata
  6. Metodo della risposta minima e molti altri.


Tuttavia, presenta diversi svantaggi:


  1. I server devono essere stateless
  2. Le sessioni devono essere mantenute in un archivio dati centralizzato
  3. Più complicato implementazione di strategie potrebbe essere necessario
  4. Un bilanciatore di carico può diventare un collo di bottiglia delle prestazioni se non è configurato correttamente e le risorse non sono sufficienti
  5. Introduce ulteriore complessità al sistema e rappresenta un potenziale singolo punto di errore, che richiede l'applicazione di strategie di failover


Bilanciatori di carico L4 / L7

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.


Principali vantaggi del bilanciatore di carico L4

  • È 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


Principali svantaggi del bilanciatore di carico L4

  • Il routing intelligente è impossibile poiché il contenuto non viene decifrato
  • Il protocollo con stato porta ulteriore complessità
  • Mapping tra indirizzi pubblici e privati
  • Nessuna memorizzazione nella cache poiché il contenuto non è disponibile a questo livello
  • Non è possibile utilizzarlo per l'architettura dei microservizi poiché il reindirizzamento del traffico non è disponibile in base al percorso URL


D'altro canto, il bilanciatore del carico L7 opera a livello applicativo nel modello OSI


Principali vantaggi del bilanciatore di carico L7

  • È possibile prendere decisioni intelligenti in base al percorso URL, alle intestazioni e al contenuto

  • Memorizzazione nella cache


Principali svantaggi del bilanciatore di carico L7

  • Overhead aggiuntivo dovuto al mantenimento di due connessioni TCP, una tra client e bilanciatore di carico, la seconda tra bilanciatore di carico e server. Inoltre, è necessario considerare il limite di connessione TCP del bilanciatore di carico
  • Meno sicuro poiché il bilanciatore del carico deve conoscere i certificati per poter decifrare i dati e prendere decisioni di routing


Conclusione

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.


  1. Il bilanciatore di carico L4 è molto più sicuro e performante a causa delle limitazioni nel prendere decisioni intelligenti

  2. 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.