- Print
- DarkLight
- PDF
Introduction
The multi-tenant deployment aims to allow Constellio's infrastructure to support the hosting of multiple tenants (clients) in multiple silos on the same server. Each tenant is independent of the others and master of his silo.
Architecture
The tenants are managed in the same application server (same process).
Each tenant has:
- Its own vault;
- Its own Solr collections (records, notifications, events);
- Its own configurations;
- Its own departments, managers and factories (e.g. ModelLayerFactory);
- Its own caches;
- His own journals (wrapper.log, etc.);
- There is a global log
- Its own transactional journal.
Partitioning
Each tenant is strongly isolated logically from the other tenants in the shared application server. See the article "Partitioning options".
Deployment
Deployment is done using scripts and configurations.
Sample script for creating tenants (single-instance): See https://constellio.cloud.constellio.com/constellio/dl?id=00000611066
Currently, deployment scripts are available for single-instance mode only.
Piloting
In the multi-tenant environment, a main tenant is designated for the administration of all tenants, which offers options for environment updates, reboots and plugin installation tools for all tenants in the environment.
Multi-tenant deployment leaves the plugin management screen and application update functionality read-only for all non-core tenants.
The restart and reindex functions are available for tenants, which do not affect other tenants during the process.
There is no screen or web services to add a tenant, quota system, or other management tools for this type of deployment (see Enhancements below).
Migration
Migration Scrips available:
- Allow an existing facility to be moved to a new tenant.
- Allow a tenant to be moved to a new facility.
Improvements
- Support for building tenants with distributed environments
- Zookeeper
- SolrCloud
- Scripts on each application server
- Allow you to add a tenant without any reboot
- Web service for creating tenants
- Tool to manage the assignment of licenses between tenants
- Control screen to validate the use of licenses between tenants
- Basic cloud management screen with server management, plugins available and installed for each tenant
- Tenant space quota system (can be done manually in the meantime)
- Monitor CPU consumption per tenant and other monitoring options...