È intelligente progettare un server di comando e controllo, che monitorerà le risorse di sistema e farà girare / ruotare i server in momenti di picco?

1

Sto costruendo un'applicazione che sarà modulare, in modo che sarà un insieme di sistemi separati che comunicano tra loro. Usa Hadoop su tutti i sistemi e HBase su 3 dei 4.

Il ridimensionamento sarà solo un problema sul sistema non Hbase, utilizza il proprio sistema come NoSQL. Sarà un sistema client-facing e richiede molta memoria, quindi ogni server può gestire un numero limitato di utenti, prima di drasticamente ridurre le prestazioni. Tutti e 4 i sistemi hanno procedure di Zookeeper & opzioni integrate.

È intelligente progettare un server di comando e controllo, che monitorerà le risorse di sistema e farà girare / ruotare i server in momenti di picco? Questo mi farebbe fallire, visto che se fallisce l'intero sistema può fallire? Quanto sarebbe difficile automatizzare un compito come quello per Hadoop?

    
posta user60812 10.08.2012 - 21:21
fonte

1 risposta

3

A livello di base, devi disporre di qualcosa per aumentare o ridurre le dimensioni del tuo ambiente.

Nell'infanzia della tua applicazione, fornirai quel "qualcosa". Quando ricevi feedback dai tuoi sistemi (o più probabilmente dai tuoi utenti che si lamentano dei tuoi sistemi), aumenterai la capacità dell'ambiente.

L'automazione di tale processo manuale è un'idea eccellente.

Suggerirei di progettare un metodo asincrono per interrogare i nodi del sistema. Un aggiornamento asincrono consentirà al centro C & C (comando e controllo) di continuare a funzionare anche quando un nodo interrogato viene sepolto sotto carico o completamente disattivato.

Ma mi contraddirò menzionando ICMP e SNMP come due tecnologie da considerare se non si desidera eseguire il roll out da soli.

Se sei preoccupato che il tuo centro C & C scenda, allora il livello successivo sarà quello di impostare la ridondanza tra due o più centri C & C. Esistono numerosi schemi che è possibile utilizzare per ridurre al minimo il sovraccarico nelle query dei nodi. Penso che questo sia al di là della portata della tua domanda, quindi non approfondirò i dettagli e mi accontenterò di averlo presentato.

Sei a rischio di difetti logici all'interno del centro C & C. Ma se lavori attraverso il diagramma logico, vedrai che sei migliore o peggiore di quello che avresti fatto altrimenti.

  • C & C buono, nodi buoni == sei bravo
  • C & C buono, i nodi falliscono == C & C risolve il problema con più risorse
  • C & C fallito, i nodi falliscono == hai una carenza di risorse, ma non peggiore del caso dei nodi che non funzionano comunque.

Se il tuo monitor di salute diventa veramente buono, può inviare segnali di allarme al centro C & C invece di stati di errore a titolo definitivo. Il C & C può quindi avere una logica speciale per attendere il "tutto chiaro" da quel nodo. Se il segnale di allarme non arriva in un intervallo di tempo prestabilito, il server C & C può automaticamente far ruotare altri nodi sapendo che il nodo in difficoltà non è mai uscito dalla zona di pericolo.

    
risposta data 13.08.2012 - 23:08
fonte

Leggi altre domande sui tag