Multi-node

Exivity can be deployment on a single node, or on multiple nodes for HA and load balancing. This guide walks you trough the steps to install some of the Exivity components on different nodes.

Multi Node System Architecture

The following diagram outlines the various components that can be deployed on seperate nodes:

Example Muli Node Exivity deployment
  • PostgreSQL DB

    • Apart from installing PostgreSQL from the installer, Exivity is compatible with any PostreSQL compatible database engine (PostgreSQL on Linux, Amazon RDS, CockroachDB, etc) in order to achieve High Availability

  • API/Backend

    • The API and backend components can be installed on any Windows Server. To achieve HA, it is possible to leverage HA techniques from the underlying hypervisor. Or optionally it is possible to deploy Exivity on an Active/Passive Windows cluster

  • Web/UI

    • The Exivity Web application and front end facing component can be deployed on as many instances as you like. In case multiple Web UI instances are required, this will require a load balancer in front of the Exivity Web application. Please note that the load balancer component is not shipped with the Exivity installer. However, Exivity is compatible with most load balancer software suits available (i.e. Nginx, Cisco, F5, AWS ELB, etc)

Deploying a PostgreSQL node

Exivity highly recommends to deploy your own PostgreSQL database cluster on Linux (or use a managed PSQL service from Azure, AWS or other vendors). To achieve High Availability, any PostgreSQL compatible cluster manager software may be used. At Exivity we have good experiences with pg_auto_failover, which is an open source PostgreSQL on Linux cluster manager (backed by Microsoft) in case you prefer to self-manage the Exivity PostgreSQL database.

When using a PostgreSQL database on a remote host, the database and user must have been created beforehand. To create the database, ask your database administator to execute a database create statement similar to the one below:

CREATE DATABASE exdb WITH OWNER = exadmin TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' CONNECTION LIMIT = -1;

In case you prefer to install PostgreSQL on Windows, Exivity recommends to install the PostgreSQL role together with the API/Scheduler backend components during the installation wizard.

Depoying an API/backend

In order to deploy a API/Backend node, the following steps needs to be executed manually or automatically thru the use of the silent installer CLI interface.

After starting the installer, click Next and provide a valid license key when asked. After clicking Next again, the component screen will be shown:

Ensure to deselect the Web Service component.

Click Next to continue. Then chose a folder for the Exivity program files, and afterwards select a folder for the Exivity home files.

Provide a custom administrator username and password, or leave the default:

Now specify a remote PostgreSQL database instance, or select to install the PostgreSQL database locally on the API/backend node:

When you are finished configuring your PostgreSQL database settings, click the Install button to start the installation process.

Once the installation is finished, ensure to check 'Start the Exivity Windows Services' to start the Exivity services after clicking Finish.

In order to achieve High Availability for the Exivity API/backend node, it is advisable to leverage the HA capabilities of your hypervisor (i.e. vSphere HA). In case you want to achieve OS level HA, you may consider implementing a Windows Failover Cluster. Please reach out to [email protected] / support.exivity.com to learn more about this kind of configuration.

Silently install API/Backend node

The below example will silently install an Exivity API/Backend node while using a remote PostgreSQL database instance:

Exivity_{version}_setup.exe /S /PGUSER=exivityadmin /PGPASSWORD=S3cret!123 /PGHOST=db.exivity.local /PGPORT=5432 /PGDB=exivitydb /PSQL_INSTALLED=0 /SCHEDULER_INSTALLED=1 /API_INSTALLED=1 /WEB_INSTALLED=0

Deploying a Web/UI node

In order to deploy a Web/UI only node, the following steps needs to be executed manually or automatically thru the use of the silent installer CLI interface.

After starting the installer, click Next and provide a valid license key when asked. After clicking Next again, the component screen will be shown:

Selecting the Web Service component in the installer

Click Next to continue. Then chose a folder for the Exivity program files, and afterwards select a folder for the Exivity home files.

In the following screen, it will be required to specify the remote host and port of your Exivity API node:

Ensure that the Exivity API host is active and accepting connections. After clicking the Next button, the installer will issue a connection attempt to the Exivity API host

Once the installation is finished, ensure to check 'Start the Exivity Windows Services' to start the Exivity services after clicking Finish.

Silent install Web/UI node

The below example will silently install an Exivity Web/UI node:

Exivity_{version}_setup.exe /S /EXIVITY_PROGRAM_PATH=C:\Exivity\Program /EXIVITY_HOME_PATH=D:\Exivity\home /PSQL_INSTALLED=0 /SCHEDULER_INSTALLED=0 /API_INSTALLED=0 /WEB_INSTALLED=1 /PROXIMITYHOST=remote.api.local /PROXIMITYPORT=443