Mantenere distribuzioni in sincronizzazione

1

Ho in programma di avere un server web, che servirà JavaScript usato per fare connessioni, e un server socket con cui dialogherà il javascript.

Come posso assicurarmi che quando si distribuisce un nuovo aggiornamento, il server javascript e il socket siano sulla stessa versione e quindi non si confondano. Devo riavviarli entrambi esattamente allo stesso tempo?

    
posta Oliver Dunk 08.04.2016 - 01:31
fonte

1 risposta

3

Questo dipende dalla tua architettura. Quando si distribuisce un client Web e un server Web, non è possibile garantire le versioni corrispondenti anche se si distribuiscono entrambi nello stesso momento. Anche se non vi è alcun caching, un utente potrebbe già avere una pagina aperta. Se comunica al tuo server subito dopo la distribuzione, otterrai questa discrepanza.

Quindi la chiave qui è non per provare a distribuire entrambi nello stesso istante, ma piuttosto a rendere entrambi resilienti in modo che se e quando è una corrispondenza mancata, le cose continuano lavorare.

Il più importante di questo è rendere il tuo server retrocompatibile. Quando cambi il tuo server, assicurati che tutte le chiamate agiscano allo stesso modo quando chiamate nel modo del vecchio client. Se hai un'interfaccia piacevole e regolare sul tuo server, generalmente non è così difficile.

Se trovi che devi modificare il tuo server che non è retrocompatibile, allora cambialo aggiungendo nuove chiamate (quindi quelle vecchie funzionano ugualmente) o aggiungendo un numero di versione del client (quindi il sistema può servire sia i vecchi che i nuovi client.) Ma dovresti evitare questo.

Il vantaggio di questo va oltre la semplice preoccupazione per l'istante della distribuzione. Disaccoppia la tua parte anteriore e posteriore, rendendo più semplice pensare a se stessi e a distribuire solo l'uno o l'altro, nei casi in cui è necessario apportare un semplice cambiamento.

    
risposta data 08.04.2016 - 02:04
fonte

Leggi altre domande sui tag