Sto refactoring un paio di servizi node.js. Tutti loro iniziarono con forever
su server virtuali, se il processo si arrestava si riavviavano.Devo usare forever/pm2 in un contenitore (Docker)?
Ora, passando alle strutture di applicazione containerizzate e senza stato, penso che il processo dovrebbe uscire e il contenitore dovrebbe essere riavviato in caso di errore.
È corretto? Ci sono vantaggi o svantaggi?
perdi implementazioni zero downtime utilizzando finestra mobile, però. Con PM2 bare-metal, è possibile avere distribuzioni a rotazione senza necessità di bilanciamento del carico. – Nepoxx
Uh, solo se si esegue la distribuzione in un contenitore in esecuzione anziché la ricostruzione di un nuovo contenitore con il nuovo codice dell'app, il che distrugge la maggior parte dei vantaggi offerti dalla finestra mobile. Arrestare il tempo di inattività a livello di bilanciamento del carico. Avere più di un'istanza della tua app in esecuzione. –
Un altro punto interessante su questo: se si stesse utilizzando PM2 per avviare istanze multiple come server web, sarà necessario avere il numero N di porte host esposte e gestirlo sull'LB piuttosto che su PM2 come pseudo-LB. Un sacco di astrazioni. * sigh * –