Grazie in anticipo.
Sto pianificando l’installazione di Discourse con alta disponibilità in un ambiente di produzione. Di seguito sono riportati il mio piano di progettazione e alcune condizioni ambientali.
Installazione con 3 server applicativi e 2 server DB Postgres. Sempre un server PG in modalità di scrittura e un altro in modalità di sola lettura.
Questi 3 server applicativi punteranno allo stesso server DB.
Ogni istanza del DB dovrebbe servire rispettivamente operazioni di sola lettura e di scrittura.
I server di produzione non hanno connettività Internet, ma posso scaricare immagini da dockerHub.
Abbiamo il nostro server GitLab.
È possibile avviare un’immagine Docker e distribuirla su più server?
Qualcuno può aiutarmi a realizzare questa configurazione? Se ci sono link o suggerimenti, per favore inviatemi un messaggio privato.
Dopo aver eseguito ./launcher bootstrap appda qualche parte, dovrai salvare l’immagine del container risultante (solitamente fatto inviandola a un registro) e quindi scaricarla ed eseguirla sui tuoi tre server dell’applicazione.
Avrai anche bisogno di un server Redis centrale (e potenzialmente delle sue repliche). Ti manca anche un load balancer per indirizzare le richieste a quei diversi server dell’applicazione.
Ciao @Falco
Nel mio ambiente di produzione, non ho accesso a Internet, quindi quello che sto pianificando è eseguire il bootstrap su una macchina accessibile da Internet, portando quell’immagine di bootstrap sui server di produzione. Mentre lo faccio sulla VM di produzione, il container non si avvia perché il server Unicorn cerca un ID di processo padre, quindi non è in esecuzione.
Per favore, aiutami qui, devo copiare la directory /var/discourse dopo il bootstrap sul server di produzione?
Stai utilizzando PostgreSQL, Redis e Object Storage esterni? Questo è previsto quando si esegue l’alta disponibilità (HA) e sia i server di produzione che i server di build devono avere accesso a tali servizi esterni.
Sto solo testando lo scenario, bootstrap che esegue su un server ed esegue l’immagine container avviata su un altro server con configurazione standalone.
Come gestirai più server di applicazioni e caricamenti degli utenti? Un’unità di rete condivisa tra tutti i server? Potrebbe funzionare, ma la nostra soluzione ufficiale per questo è Object Storage utilizzando l’API S3.