Example of a typical Document.One enterprise installation
A typical D1 setup consists of D1 and Conversion Service components. To avoid single points of failure, each application requires at least two nodes running on different hosts.
D1 nodes can share the same host. Conversion nodes, which perform CPU-intensive tasks, should be installed on separate hosts for better distribution of the load.
Hosts and nodes
A typical D1 enterprise setup consists of two D1 nodes and two Conversion nodes running on four hosts:
- Host 1 with D1 node 1
- Host 2 with D1 node 2
- Host 3 with Conversion node 1
- Host 4 with Conversion node 2
When needed, you can scale up your deployment by adding another host: host 5 with Conversion node 3, and so on.
Load balancers
Communication to D1 and Conversion instances is achieved through load balancers:
- D1 load balancer - HTTP load balancer delegating to D1 nodes
- Conversion Service load balancer - HTTP load balancer delegating to Conversion Service nodes
D1 applications, by default, provide only a self-signed certificate. In a typical setup it is fine though, also for production, because the load balancer provides a valid certificate for external communication. Internally the load balancer can be then configured to accept self-signed certificates. That way, communication is still encrypted.
For example, the D1 load balancer adx-lb
listens on HTTPS port 443
. Then the load balancer delegates requests to HTTPS port 8443
of D1 node 1 (on host adx-host-1
) and D1 node 2 (on host adx-host-2
):
`adx-lb:443` -> `adx-host-1:8433`, `adx-host-2:8433`
Databases
Multiple databases (or database schemas) are used to separate system from business data:
- D1 system database stores system data such as repository configuration, users or sessions.
- D1 content database stores D1 repository content data
- D1 cache database stores D1 cache and conversion data.
If required, you can create separate databases for each repository.
You must perform regular backups of D1 system database and D1 content database.
Backups are not so important for D1 cache database (only temporary data or data which can be recreated automatically).
Storages
In addition to the database data, D1 also needs to store resources of various kinds, such as content, cache or conversion resources. Usually these resources are stored as normal files in various folders on a shared file system which can be accessed by all nodes.
In the example setup below there is a single shared file system which is accessible via mount point /adx-shared-fs
from all the hosts. Sub-folders are used to organize files (for example, to separate repository files from conversion files). You can create a separate conversion file system /adx-conversion-shared-fs
and allow access only from the Conversion Service nodes.
Example of an enterprise setup
Below we provide an example setup: example hosts, ports, URLs and folders. Based on this it should be easy to adapt the values to match a real setup.
Hosts settings
Host 1 | Host 2 | Host 3 | Host 4 | |
---|---|---|---|---|
Node name | D1 node 1 | D1 node 2 | Conversion node 1 | Conversion node 21 |
Host name | adx-host-1 | adx-host-2 | conversion-host-1 | conversion-host-2 |
Port | 8080 | 8080 | 8080 | 8080 |
Databases | adx-system * | adx-system * | adx-system , adx-cache | adx-system , adx-cache |
File system mount point ** | /adx-shared-fs | /adx-shared-fs | /adx-shared-fs | /adx-shared-fs |
Storage | /adx-shared-fs/repository-resources/content/example | /adx-shared-fs/repository-resources/cache/example , /adx-shared-fs/repository-resources/content/example | /adx-shared-fs/conversion-resources | /adx-shared-fs/conversion-resources |
*Additional database schemas dependent on the repository settings; adx-content
, adx-cache
can be used.
**A single file system is shared and accessible from all nodes.
Load balancer settings
D1 load balancer | Conversion Service load balancer | |
---|---|---|
Host name | conversion-host-2 | adx-lb |
Ports | HTTPS: adx-lb:443 -> adx-host-1:8443 , adx-host-2:8443 ; HTTP load balancing at level 7 | HTTPS: conversion-lb:443 -> conversion-host-1:8443 conversion-host-2:8443 ; HTTP load balancing at level 7 |
Service URL | https://adx-lb:443/tribefire-services, controlled by setting TRIBEFIRE_PUBLIC_SERVICES_URL | https://conversion-lb:443/tribefire-services, controlled by setting DOCUMENTS_CONVERSION_TFS_URL |
Proceed with Conversion Service server installation. See Installing Conversion Service.