Modo Multiambiente
App supervisorEnterprise Edition+Introdução
O modo de múltiplas aplicações em memória compartilhada possui vantagens óbvias na implantação e operação, mas com o aumento do número de aplicações e da complexidade do negócio, uma única instância pode enfrentar gradualmente problemas como disputa de recursos e queda de estabilidade. Para esses cenários, os usuários podem adotar uma solução de implantação híbrida multiambiente para suportar requisitos de negócios mais complexos.
Neste modo, o sistema implanta uma aplicação de entrada como centro unificado de gerenciamento e agendamento, enquanto implanta várias instâncias do NocoBase como ambientes de execução de aplicações independentes, responsáveis por carregar as aplicações de negócio reais. Cada ambiente é isolado entre si e trabalha de forma colaborativa, dispersando efetivamente a pressão de uma única instância e melhorando significativamente a estabilidade, escalabilidade e capacidade de isolamento de falhas do sistema.
No nível de implantação, diferentes ambientes podem ser executados em processos independentes, implantados como diferentes contêineres Docker ou na forma de múltiplos Deployments do Kubernetes, sendo capazes de se adaptar de forma flexível a ambientes de infraestrutura de diferentes escalas e arquiteturas.
Implantação
No modo de implantação híbrida multiambiente:
- A aplicação de entrada (Supervisor) é responsável pelo gerenciamento unificado de informações de aplicações e ambientes.
- A aplicação de trabalho (Worker) atua como o ambiente de execução real do negócio.
- As configurações de aplicação e ambiente são armazenadas em cache via Redis.
- A sincronização de comandos e status entre a aplicação de entrada e a aplicação de trabalho depende da comunicação via Redis.
Atualmente, a função de criação de ambiente ainda não é fornecida; cada aplicação de trabalho precisa ser implantada manualmente e configurada com as informações de ambiente correspondentes antes de poder ser identificada pela aplicação de entrada.
Dependências de Arquitetura
Antes da implantação, prepare os seguintes serviços:
-
Redis
- Cache de configurações de aplicação e ambiente
- Atua como canal de comunicação de comandos entre a aplicação de entrada e a aplicação de trabalho
-
Banco de dados
- Serviços de banco de dados aos quais a aplicação de entrada e a aplicação de trabalho precisam se conectar
Aplicação de Entrada (Supervisor)
A aplicação de entrada atua como centro de gerenciamento unificado, responsável pela criação, inicialização, interrupção de aplicações e agendamento de ambientes, bem como pelo proxy de acesso às aplicações.
Explicação da configuração das variáveis de ambiente da aplicação de entrada:
Aplicação de Trabalho (Worker)
A aplicação de trabalho atua como o ambiente de execução real do negócio, responsável por carregar e executar instâncias específicas de aplicações NocoBase.
Explicação da configuração das variáveis de ambiente da aplicação de trabalho:
Exemplo de Docker Compose
O exemplo a seguir mostra uma solução de implantação híbrida multiambiente usando contêineres Docker como unidades de execução, implantando simultaneamente uma aplicação de entrada e duas aplicações de trabalho via Docker Compose.
Manual do Usuário
As operações básicas de gerenciamento de aplicações são as mesmas do modo de memória compartilhada; consulte o Modo de Memória Compartilhada. Esta seção apresenta principalmente o conteúdo relacionado à configuração multiambiente.
Lista de Ambientes
Após a conclusão da implantação, acesse a página "Gerenciador de Aplicações" da aplicação de entrada. Na aba "Ambientes", você pode visualizar a lista de ambientes de trabalho registrados. Isso inclui o identificador do ambiente, a versão da aplicação de trabalho, a URL de acesso e o status, entre outras informações. A aplicação de trabalho envia um batimento cardíaco (heartbeat) a cada 2 minutos para garantir a disponibilidade do ambiente.

Criação de Aplicação
Ao criar uma aplicação, você pode selecionar um ou mais ambientes de execução para especificar em quais aplicações de trabalho essa aplicação será implantada. Em circunstâncias normais, recomenda-se selecionar apenas um ambiente. Selecione múltiplos ambientes apenas quando a aplicação de trabalho tiver realizado a divisão de serviços e for necessário implantar a mesma aplicação em múltiplos ambientes de execução para alcançar o compartilhamento de carga ou isolamento de capacidades.

Lista de Aplicações
A página da lista de aplicações exibirá o ambiente de execução atual e as informações de status de cada aplicação. Se a aplicação for implantada em múltiplos ambientes, múltiplos status de execução serão exibidos. Em condições normais, a mesma aplicação em múltiplos ambientes manterá um status unificado, exigindo controle unificado para iniciar e parar.

Inicialização de Aplicação
Como a inicialização da aplicação pode gravar dados de inicialização no banco de dados, para evitar condições de corrida em múltiplos ambientes, as aplicações implantadas em múltiplos ambientes entrarão em uma fila para inicialização.

Proxy de Acesso à Aplicação
As aplicações de trabalho podem ser acessadas via proxy através do subcaminho /apps/:appName/admin da aplicação de entrada.

Se a aplicação for implantada em múltiplos ambientes, é necess ário especificar um ambiente de destino para o acesso via proxy.

Por padrão, o endereço de acesso via proxy utiliza o endereço de acesso da aplicação de trabalho, correspondente à variável de ambiente ENVIRONMENT_URL. Certifique-se de que este endereço seja acessível no ambiente de rede onde a aplicação de entrada está localizada. Se for necessário usar um endereço de acesso via proxy diferente, ele pode ser sobrescrito através da variável de ambiente ENVIRONMENT_PROXY_URL.

