Per progettare un blu verde distribuire come pubblicare traffico websocket dal server live a hot swap


13

Una distribuzione verde blu comporta il pompaggio di flussi di dati di prod live (blu) in un ambiente non prod di hot swap (verde) in preparazione alla distribuzione per vivere l'ambiente verde, in modo tale che il green abbia una sincronizzazione completa dei dati con l'ambiente precedente di prod blue.

Mi chiedo che cosa la gente stia usando per copiare dal vivo il traffico del websocket in corso dal blu al verde, scrivo da solo o c'è una libreria di websocket di pubblicazione / sottoscrizione o forse un approccio diverso al blu verde?

La mia app ha server REST nodejs che gestiscono anche il traffico websocket da dispositivi mobili ... un server mongodb, ecc ... ciascuno in contenitori su GCE / AWS

Mi rendo conto che potrei semplicemente sincronizzare il mongodb dal blu al verde, ma che non eserciterebbe i server nodejs verdi con traffico in diretta, il che è un buon controllo di sanità mentale di regressione che sto cercando

Forse se vivo solo il traffico HTTP in avanti, il websocket sottostante che gira su HTTP si prenderà cura di se stesso e non richiederà una specifica configurazione verde blu


1
Puoi confermare se stai implementando server DB o server HTTP?
Purefan,

Domanda e risposta correlate su SO stackoverflow.com/questions/10257770/…
Evgeny

Risposte:



5

I websocket non hanno davvero alcuna gestione per questo di per sé. Potresti costruire il tuo sistema, ma generalmente l'idea di HA è che se succede qualcosa, imposterai il client per riconnettersi automaticamente. Ci saranno tempi di inattività diversi da zero durante uno scambio blu-verde, ma se l'app è ben costruita dovrebbe gestirla già.

Se si desidera qualcosa di più fluido, è possibile creare un messaggio nel protocollo per connettersi a un nuovo server e quindi eliminare la connessione originale.

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.