Bilanciatori di carico hardware e software: solo un problema di costi?


26

Se il costo non fosse un problema, ci sarebbe qualche vantaggio nell'implementazione di un bilanciamento del carico software per il traffico web rispetto a quello hardware?

Risposte:


33

La distinzione tra bilanciatori di carico "hardware" e "software" non è più significativa. Un cosiddetto sistema di bilanciamento del carico "hardware" è una CPU di classe PC, interfacce di rete con funzionalità di elaborazione dei pacchetti e alcuni software per legare tutto insieme. Un bilanciamento del carico "software" realizzato su un buon server con schede NIC moderne è ... lo stesso.

Quello che ottieni con le offerte commerciali di fascia alta come F5 o Citrix Netscaler è:

  • Un set ricco e profondo di funzionalità. La loro soluzione è matura e può gestire rapidamente tutte le esigenze comuni e anche alcune non comuni.
  • Statistiche eccellenti. I tipi di gestione adorano le statistiche e i tecnici di rete si rendono conto che le statistiche possono essere utili anche per la risoluzione dei problemi.
  • Un singolo fornitore da soffocare quando qualcosa non funziona, ad esempio supporto contratto direttamente con il fornitore della soluzione.
  • Costi salariali inferiori. L'apparecchio funziona principalmente e la gestione di uno non richiede così tante ore.

Con i bilanciatori del carico del software (open source) non si ottiene il contrario, ciò che si ottiene dipende dal software scelto e da come procedere. Detto questo, in genere vedrai:

  • Tempo più lungo per impostare la soluzione iniziale. Soprattutto se hai bisogno di qualcosa di più del semplice bilanciamento del carico, memorizzazione nella cache fx + riscrittura dei contenuti + HA, la configurazione di software open source richiede più ore.
  • Lo costruisci, lo possiedi. Se la tua azienda imposta bilanciatori di carico software open source con tecnologia interna, sei tu stesso responsabile al 100% della soluzione. Documentazione, percorso di aggiornamento, ripristino di emergenza, ecc. Dovranno essere considerati e forse implementati da voi .

La differenziazione non è in realtà "hardware" rispetto a "software". Si tratta di "acquistare uno stack tecnologico collaudato come apparecchio" anziché "costruirlo da soli". Ci sono ovviamente molte variabili da considerare quando si prende la decisione finale (costi, serie di competenze interne, tolleranza per i tempi di fermo, crescita futura ecc.).


2
Aspetti positivi, ma ci sono certamente bilanciatori di carico basati su ASIC (F5 / ACE / ..?) Che gestiscono "molto" nei processori distribuiti, non nella CPU. Contesto anche la domanda relativa all'uomo, soprattutto se il costo delle ore di lavoro per eseguire l'installazione.
Joris,

Lo hai menzionato brevemente, ma penso che dovrebbe essere sottolineato che con un bilanciamento del carico HW, in genere ottieni un contratto di supporto che puoi utilizzare ogni volta che qualcosa va storto. A volte questo diventa il fattore decisivo per un'azienda su quale direzione andare.
vmfarms,

@Joris, @vmfarms Aspetti positivi, sono d'accordo. Ottenere tutti i punti più fini nel modo giusto richiederebbe di scrivere un piccolo romanzo. :-)
Jesper M

Buona risposta, tuttavia Barracuda Networks, Loadbalancer.org e Kemp Technologies stanno vendendo migliaia di hardware / software / dispositivi virtuali a siti molto grandi. Molto raramente hai bisogno di qualcosa di più dello stack open source Linux / LVS supportato che forniscono ... Non fraintendetemi, gli stack Citrix e F5 sono molto migliori, ma per il 95% delle applicazioni è irrilevante. Ho scritto un blog su come confrontare i bilanciatori di carico qui: loadbalancer.org/blog/…
Malcolm turnbull

2

I sistemi di bilanciamento del carico hardware dispongono in genere di un set più ricco di funzionalità, soprattutto quando si arriva a quelli grandi come F5. Hai anche l'ulteriore vantaggio di una maggiore scalabilità a causa del offload dell'hardware.

D'altra parte, se sai che il tuo traffico non sarà troppo elevato, i bilanciatori del carico software funzionano davvero abbastanza bene. Se riesci a guadagnare con un Layer 4 LB, Linux LVS + Keepalived è un'ottima opzione. Se hai bisogno della potenza di un Layer 7 LB, puoi provare HAProxy.

Quindi, in sintesi, gli LB HW in genere si adattano meglio degli LB SW.

Spero che sia di aiuto!


"HW LBs .. scala meglio di SW LBs" non è abbastanza preciso. Gli LB HW offrono di gran lunga le massime prestazioni a telaio singolo . Ma un buon software di progettazione LB si ridimensionerebbe in orizzontale, e quindi ridimensionerebbe altrettanto (e probabilmente sarebbe più economico di un grande LB in ferro).
Jesper M,

2

Alcuni pensieri:

Pro: la macchina su cui esegui il bilanciamento del carico potrebbe avere hardware molto più potente, quindi sarebbe più veloce e importerebbe una latenza aggiuntiva (anche se a seconda della velocità dei tuoi collegamenti con il mondo esterno ciò potrebbe fare poca differenza).

Contro: un bilanciamento del carico hardware probabilmente non avrà più potenza di elaborazione di quella di cui ha bisogno (potrebbe funzionare su un chip Atom o basato su ARM piuttosto che su una CPU Intel / AMD di fascia alta ad esempio) quindi consumerà meno energia e genererà meno calore.

Pro: l' installazione del proprio sistema di bilanciamento del carico del software può offrire maggiore flessibilità nella configurazione e successivi aggiornamenti / modifiche, in cui una soluzione hardware potrebbe essere molto più di una soluzione "scatola nera" chiusa. Tuttavia, se stai acquistando un servizio gestito per implementare il bilanciamento del software, questo farà poca differenza.

Contro: se non si sta gestendo il bilanciamento del software (ovvero l'attività è esternalizzata o si sta acquistando il servizio come parte di un accordo di hosting gestito più ampio), è possibile che le tariffe di amministrazione per il mantenimento dell'installazione significhino un hardware standardizzato la soluzione sarebbe più economica a lungo termine. Inoltre, ricorda di tenere conto nel tuo tempo di eventuali costi se tu o la tua azienda gestirete il bilanciamento del carico.


"la macchina su cui si esegue il bilanciamento del carico potrebbe avere hardware molto più potente, quindi sarebbe più veloce e imporre una latenza aggiuntiva" - davvero? ho visto che diceva che un ServerIron poteva gestire connessioni simultanee di 15m mentre il haproxy può gestire decine di migliaia
timmy

@Timmy - Ho letto un caso di studio sul sito Web haproxy (il loro sito Web è, purtroppo, offline) in cui hanno saturato un collegamento di 10 Gbps a una scatola HAProxy e si è ridimensionato bene, e sono abbastanza sicuro che sarebbero più di 10k richieste simultanee .
Mark Henderson

1
Trovato - webcache.googleusercontent.com/… (grazie a Google Cache) - essendo la linea chiave 105931 sessions per seconde circa il 17% di utilizzo della CPU - è piuttosto folle per un singolo processore Xeon di base
Mark Henderson

@Farseeker - grazie, non mi ero reso conto che potevano gestire così tante sessioni.
timmy,

2

Prenderei in considerazione anche questi punti:

Se la società ha un reparto IT con uno specialista della rete, un LB hardware potrebbe aiutare a ridurre il carico di manutenzione del team di sviluppo.

A volte, specialmente per le grandi aziende, l'adozione di un nuovo hardware che nessuno sa come operare, implica l'assunzione di consulenti costosi o persino un nuovo impiego.

Il team di sviluppo odierà una soluzione hardware se sta pianificando di sottolineare le funzionalità del bilanciamento del carico, come ad esempio adottare una distribuzione continua.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.