Progettazione del failover a colori, failover a livello DNS?
-
03-07-2019 - |
Domanda
Sono interessato a strategie di fail-over cross-colo per le applicazioni Web, in modo tale che se il sito principale fallisce gli utenti arrivano senza problemi al sito di fail-over in un altro colo.
Il lato applicativo delle cose sembra essere per lo più capito con un'impostazione del database master-slave tra le colonne e i servizi progettati per il recupero e per essere in grado di raccogliere a metà flusso. Sto cercando di capire la strategia per spostare il traffico dal sito principale al sito di failover. Il failover DNS, anche con TTL bassi, sembra avere un latenza.
Quali strategie consiglieresti per spostare rapidamente il traffico tra le colonne, supponendo che i server nel colo principale non siano raggiungibili?
Se hai altre interessanti esperienze / parole di saggezza sul failover cross-colo, mi piacerebbe sentire anche quelle.
Soluzione
I meccanismi basati su DNS sono problematici, anche se si inseriscono TTL bassi nei file delle zone.
La ragione di ciò è che molte applicazioni (ad esempio MSIE) mantengono le loro cache che ignorano il TTL. Altri software eseguiranno un singolo gethostbyname ()
o una chiamata equivalente e memorizzeranno il risultato fino al riavvio del programma.
Ancora peggio, è noto che molti server DNS ricorsivi di ISP ignorano i TTL al di sotto del loro minimo preferito e impongono i loro TTL più elevati.
Alla fine, se il sito deve essere eseguito da entrambi i data center senza modificando il suo indirizzo IP, è necessario esaminare le disposizioni per " Multihoming " tramite annunci di route BGP4 globali.
Con il multihoming è necessario ottenere almeno un netblock / 24 di "quot indipendente dal provider" (alias "quot" PI "), quindi lo spazio degli indirizzi IP deve essere annunciato sulla tabella di routing globale dal sito di backup solo se il sito principale non è in linea.
Altri suggerimenti
Per quanto riguarda il DNS, mi piace fare riferimento a " Perché il bilanciamento del carico del server globale basato su DNS non funziona Work " . Per tutto il resto - usa BGP .
La progettazione di reti per il bilanciamento del carico mediante BGP non è ancora un compito facile e io stesso non sono certo un esperto in questo. È anche più complesso di quanto Wikipedia possa dirti, ma ci sono un paio di articoli interessanti sul web che descrivono in dettaglio come può essere fatto:
C'è sempre di più se cerchi BGP e bilanciamento del carico. Ci sono anche un paio di white paper in rete che descrivono come Akamai fa il loro bilanciamento del carico globale (credo che sia anche BGP.), Che è sempre interessante da leggere e conoscere.
Oltre agli ovvi concetti che è possibile utilizzare software e hardware per raggiungere, si potrebbe anche voler verificare con il proprio ISP / provider / colo se possono configurarti.
Inoltre, nessuna offesa per quanto riguarda la scelta del colo (chi è il fornitore?), ma la maggior parte dei luoghi dovrebbe essere impostata per gestire i tempi di inattività e così via, non dovrebbero richiedere di intraprendere azioni. Naturalmente inondazioni o alieni possono sempre colpire, ma in quel caso credo che ci siano questioni più importanti. : -)
Se possibile, Multicast - http://en.wikipedia.org/wiki/Multicast o AnyCast - http://en.wikipedia.org/wiki/Anycast