Questo documento è stato tradotto dall'IA. Per informazioni accurate, consultare la versione inglese.
Le multi-applicazioni in modalità memoria condivisa presentano vantaggi evidenti nel deployment e nella manutenzione, ma con l'aumento del numero di applicazioni e della complessità del business, una singola istanza può trovarsi gradualmente ad affrontare problemi come la contesa delle risorse e la riduzione della stabilità. Per questi scenari, gli utenti possono adottare una soluzione di deployment ibrido multi-ambiente per supportare requisiti aziendali più complessi.
In questa modalità, il sistema distribuisce un'applicazione di ingresso come centro di gestione e pianificazione unificato, distribuendo contemporaneamente più istanze di NocoBase come ambienti di runtime delle applicazioni indipendenti, responsabili dell'effettivo hosting delle applicazioni aziendali. Ogni ambiente è isolato dagli altri e lavora in modo collaborativo, distribuendo efficacemente la pressione della singola istanza e migliorando significativamente la stabilità, la scalabilità e la capacità di isolamento dei guasti del sistema.
A livello di deployment, i diversi ambienti possono essere eseguiti in processi indipendenti, distribuiti come diversi container Docker o sotto forma di più Deployment Kubernetes, adattandosi in modo flessibile a infrastrutture di diverse dimensioni e architetture.
Nella modalità di deployment ibrido multi-ambiente:
Attualmente non è ancora disponibile la funzione di creazione dell'ambiente; ogni applicazione di lavoro deve essere distribuita manualmente e configurata con le informazioni sull'ambiente corrispondente prima di poter essere riconosciuta dall'applicazione di ingresso.
Prima del deployment, prepari i seguenti servizi:
Redis
Database
L'applicazione di ingresso funge da centro di gestione unificato, responsabile della creazione, dell'avvio, dell'arresto delle applicazioni e della pianificazione degli ambienti, nonché del proxy di accesso alle applicazioni.
Descrizione della configurazione delle variabili d'ambiente dell'applicazione di ingresso:
L'applicazione di lavoro funge da effettivo ambiente di runtime del business, responsabile dell'hosting e dell'esecuzione di istanze specifiche dell'applicazione NocoBase.
Descrizione della configurazione delle variabili d'ambiente dell'applicazione di lavoro:
Il seguente esempio mostra una soluzione di deployment ibrido multi-ambiente con container Docker come unità di runtime, distribuendo contemporaneamente un'applicazione di ingresso e due applicazioni di lavoro tramite Docker Compose.
Le operazioni di gestione di base delle applicazioni non differiscono dalla modalità a memoria condivisa; si prega di fare riferimento alla Modalità memoria condivisa. Questa sezione introduce principalmente i contenuti relativi alla configurazione multi-ambiente.
Al termine del deployment, acceda alla pagina "App Supervisor" dell'applicazione di ingresso; nella scheda "Ambienti" è possibile visualizzare l'elenco degli ambienti di lavoro registrati. Questo include informazioni come l'identificatore dell'ambiente, la versione dell'applicazione di lavoro, l'URL di accesso e lo stato. L'applicazione di lavoro invia un heartbeat ogni 2 minuti per garantire la disponibilità dell'ambiente.

Durante la creazione di un'applicazione, è possibile selezionare uno o più ambienti di runtime per specificare in quali applicazioni di lavoro verrà distribuita l'applicazione. In genere, si consiglia di selezionare un solo ambiente. Selezioni più ambienti solo quando l'applicazione di lavoro ha effettuato una suddivisione dei servizi ed è necessario distribuire la stessa applicazione in più ambienti di runtime per ottenere la ripartizione del carico o l'isolamento delle capacità.

La pagina dell'elenco delle applicazioni mostrerà l'ambiente di runtime corrente e le informazioni sullo stato di ogni applicazione. Se un'applicazione è distribuita in più ambienti, verranno visualizzati più stati di esecuzione. In condizioni normali, la stessa applicazione in più ambienti manterrà uno stato unificato e dovrà essere avviata e arrestata in modo coordinato.

Poiché l'avvio dell'applicazione può comportare la scrittura di dati di inizializzazione nel database, per evitare race condition in contesti multi-ambiente, l'avvio delle applicazioni distribuite in più ambienti avverrà in coda.

Le applicazioni di lavoro possono essere accessibili tramite proxy attraverso il sotto-percorso /apps/:appName/admin dell'applicazione di ingresso.

Se l'applicazione è distribuita in più ambienti, è necessario specificare un ambiente di destinazione per l'accesso proxy.

Per impostazione predefinita, l'indirizzo di accesso proxy utilizza l'indirizzo di accesso dell'applicazione di lavoro, corrispondente alla variabile d'ambiente ENVIRONMENT_URL; si assicuri che tale indirizzo sia accessibile nell'ambiente di rete in cui si trova l'applicazione di ingresso. Se è necessario utilizzare un indirizzo di accesso proxy diverso, è possibile sovrascriverlo tramite la variabile d'ambiente ENVIRONMENT_PROXY_URL.