FAQ

Diventiamo tecnici

Glossario e FAQ della terminologia di bilanciamento del carico

La tecnologia di bilanciamento del carico si è evoluta notevolmente negli ultimi anni e, di conseguenza, la terminologia associata all'Application Delivery è diventata piuttosto confusa. Con una serie di acronimi e gergo tecnico, è facile sentirsi sopraffatti quando si guarda alle soluzioni di bilanciamento del carico.

Un load balancer è un dispositivo di rete responsabile della distribuzione efficace del traffico di rete in entrata su più server backend per garantire servizi applicativi sempre disponibili. I bilanciatori di carico possono essere distribuiti come dispositivi software, dispositivi hardware o anche come servizio. Un bilanciatore di carico permette di ottimizzare l’utilizzo dei server e di rimuovere i singoli punti di errore nella consegna delle applicazioni per garantire quanto segue:

Resilienza – Un bilanciatore di carico permette di eseguire più server di applicazioni per svolgere lo stesso ruolo. In caso di guasto di un server, il bilanciatore di carico lo rileverà e reindirizzerà il traffico ai restanti server online e sani. Questo assicura un’alta disponibilità e affidabilità delle applicazioni.

Scalabilità – I bilanciatori di carico permettono di scalare i servizi senza impattare sulle prestazioni. Aggiungendo semplicemente più server dietro il bilanciatore di carico per la distribuzione, si introduce la capacità di adattarsi a un aumento del carico.

Capacità – Per aumentare la capacità basta aggiungere più server dietro il bilanciatore di carico. (Ok, di solito non è così facile perché probabilmente avrete database e altri server di applicazioni da considerare, ma avete l’idea)

I bilanciatori di carico distribuiscono il traffico delle applicazioni in base a diverse strategie di bilanciamento del carico o politiche di bilanciamento del carico, come vengono talvolta chiamati. Per capire se un server backend è online e sano, un bilanciatore di carico utilizzerà il monitoraggio del server back-end e il controllo della salute del server. I principi del bilanciamento del carico sono stati in giro per molti anni, ma questi dispositivi si sono evoluti significativamente dal dispositivo di base layer4 a molto più sofisticati layer7 Application Delivery controllers, o ADCs come li chiama Gartner. Gli ADC offrono molte altre caratteristiche chiave, tra cui la sicurezza e la gestione del traffico.

Una strategia o politica di bilanciamento del carico istruisce il bilanciatore di carico su dove inviare la prossima richiesta in arrivo. Ci sono molte strategie di bilanciamento del carico disponibili a seconda della soluzione specifica, tuttavia alcune comuni sono elencate di seguito:

Round Robin: Il metodo di bilanciamento del carico più semplice in cui ogni server fa un turno per ricevere una richiesta.

Minimo numero di connessioni: Il bilanciatore di carico terrà traccia del numero di connessioni di un server e invierà la prossima richiesta al server con meno connessioni. Nota: i vecchi bilanciatori di carico solo per il layer4 tendono a non supportare questo perché tipicamente eseguono DSR (Direct Server Return) e non sanno quante connessioni sono attualmente sui server di backend.

Ponderato: Di solito i server sono assegnati in percentuale di capacità, poiché un server potrebbe essere due volte più potente di un altro. I metodi ponderati sono utili se il bilanciatore di carico non conosce le prestazioni reali ed effettive del server.

Tempo di risposta più veloce: Questo metodo di bilanciamento del carico è normalmente disponibile solo su prodotti più avanzati. La richiesta sarà inviata al server che risponde più velocemente.

I bilanciatori di carico eseguono controlli sullo stato di salute dei server web per determinare se sono vivi, sani e forniscono un servizio. Il monitoraggio della salute del server è la chiave per fornire applicazioni resilienti e, a seconda della soluzione scelta, alcuni bilanciatori di carico sono in grado di utilizzare i controlli di salute del layer7 che offrono una maggiore sofisticazione nel rilevamento dei problemi. Di seguito è riportato un riassunto dei diversi metodi di controllo della salute del server.

Ping: Questo è il metodo più semplice per controllare lo stato di salute del server, tuttavia non è molto affidabile perché il bilanciatore di carico può segnalare che il server è attivo, mentre il servizio web può essere ancora giù.

TCP Connect: Questo è un metodo di controllo della salute più sofisticato che può verificare se un servizio è attivo e funzionante. Un esempio sono i servizi sulla porta 80 per il web.

Semplice HTTP GET: Questo metodo di controllo della salute del server farà una richiesta HTTP GET al server web e tipicamente controllerà per una risposta di intestazione come un 200 OK.

GET HTTP completo: Questo controllo della salute del server farà un HTTP GET e controllerà il corpo del contenuto effettivo per una risposta corretta. Questa caratteristica è disponibile solo su alcune delle soluzioni di bilanciamento del carico più avanzate, ma è il metodo superiore per le applicazioni web perché controllerà che l’applicazione effettiva sia disponibile.

Controlli di salute del server personalizzabili: Alcune soluzioni di bilanciamento del carico sono in grado di ospitare monitor personalizzati per le applicazioni TCP / IP per un migliore controllo dei loro servizi applicativi specifici.

La persistenza è una caratteristica richiesta da molte applicazioni web e siti web. Una volta che un utente ha interagito con un particolare server, tutte le richieste successive sono inviate allo stesso server e quindi “persistono” in quel particolare server. La persistenza della sessione assicura una continuità di servizio e un’esperienza dell’utente finale senza soluzione di continuità ed è spesso un requisito delle applicazioni di ecommerce il cui stato della sessione è memorizzato sul server web locale invece che su un database condiviso. La persistenza può assumere molte forme…

Cookie del bilanciatore di carico: Il bilanciatore di carico imposterà un cookie sul client e lo userà per identificare il server di backend da usare per questo utente.

Cookie di sessione delle applicazioni: Molti server di applicazioni impostano già il proprio ID di sessione come il cookie di sessione jsp o Asp.net. È possibile configurare il bilanciatore di carico per usarli.

Basato su IP: Utilizza l’indirizzo IP del cliente per persistere. Questo metodo funziona per il layer4 e il layer7.

Sessione SSL: Utilizza l’ID della sessione SSL. Questo non è molto comune perché l’ID della sessione può cambiare, e quindi la persistenza viene persa.

Cookie di sessione RDP: Utilizzato per le connessioni RDP.

Questo è un termine usato per descrivere un bilanciatore di carico avanzato. Ora la maggior parte dei bilanciatori di carico sono apparecchi di livello 7, situati in una posizione privilegiata tra l’applicazione e i clienti. Con la visibilità di tutto il traffico, il bilanciatore di carico può eseguire una serie di funzioni al di là del semplice bilanciamento del carico e della ridondanza dei server. Il bilanciamento del carico è una delle numerose caratteristiche di un ADC, tra cui:

  • Gestione del traffico Layer7
  • Accelerazione dell’applicazione
  • Caching dei contenuti
  • Firewall delle applicazioni
  • Pooling e limitazione delle connessioni
  • Pre-autenticazione e single sign-on
  • Proxy

I termini layer4 e layer7 si riferiscono ai livelli di protocollo in cui opera un bilanciatore di carico nel modello di rete OSI. I bilanciatori di carico layer4 operano a livello di trasporto, mentre i bilanciatori di carico layer7 operano a livello di protocollo dell’applicazione, offrendo loro una maggiore visibilità e comprensione dell’applicazione che sta elaborando. Questo permette funzionalità avanzate e caratteristiche di ottimizzazione tra cui la gestione intelligente del traffico, il caching dei contenuti, la sicurezza e la compressione. Caratteristiche di accelerazione I bilanciatori di carico Layer4 sono ancora disponibili, anche se la loro quota di mercato si sta riducendo in modo significativo man mano che i bilanciatori di carico avanzati e gli ADC layer7 diventano più potenti e convenienti.

SSL (Secure Sockets Layer) è usato per descrivere il processo di crittografia della connessione, in genere utilizzando un certificato privato. HTTPS è HTTP eseguito su una connessione SSL criptata. SSL può essere un’operazione molto intensa per la CPU, riducendo così la velocità e la capacità del server web. L’offloading della terminazione SSL a un bilanciatore di carico vi permette di gestire centralmente i vostri certificati e libera i vostri server per concentrarsi sulla fornitura dell’applicazione piuttosto che sulla decrittazione di SSL.

Un WAF o Web Application Firewall è un dispositivo di sicurezza progettato specificamente per mitigare le minacce al livello dell’applicazione, cioè il layer7. Più specificamente, un Web Application Firewall è progettato per lavorare con i protocolli HTTP e HTTPS. Funzionano insieme a un firewall di rete standard che di solito blocca le porte. Affinché un’applicazione possa offrire un servizio pubblico, certe porte (come 80 e 443 per una tipica applicazione web HTTP/HTTPS) devono essere aperte. Gli hacker sfruttano queste porte aperte, esponendo la necessità di un ulteriore, nuovo livello di protezione. È qui che entra in gioco un Application Firewall o WAF. Un Web Application Firewall guarderà le richieste e le risposte HTTP per capire se sono valide o no. Alcune richieste possono essere valide per un sito/pagina ma non per un altro, quindi in molti casi, gli Application Firewalls possono aver bisogno di più configurazione. PCI DSS richiede un Application Firewall per bloccare alcune minacce standard, in conformità con le 10 principali minacce pubblicate da OWASP.