- 11 Mar 2024
- 8 Minutes to read
- Print
- DarkLight
Setting up a Cluster server
- Updated on 11 Mar 2024
- 8 Minutes to read
- Print
- DarkLight
Clustering in Dev environment is not supported!
Decisions do not support clustering for Development environments. It is recommended to deploy cluster soley for production servers.
The article demonstrates installing and setting up a two-node cluster server with end-to-end SSL encryption.
Before you begin with the installation setup, review the Installation Requirements.
Prerequisites/Important Considerations
It is highly recommended that dedicated resources be provided for file storage, database, and Redis server.
It is recommended that all machines be hosted in the same domain. If not, ensure effective communication and establish network connectivity between machines hosting applications.
Create a Windows admin account with the same username and password, which has access to all the machines within the cluster. This account will be used as a Service Account during the installation process.
Ensure all servers are configured in the same time zone. If you want to enable Time-zone translation, ensure all the machines are set to Coordinated Universal Time (UTC).
Download and install the appropriate .NET applications.
Ensure to use a wildcard certificate for SSL encryption.
Download the installer on machines hosting the platform.
Set up a SQL server.
Set up a Redis server for external caching. For more information, refer to Setting up Redis.
Configure a load balancer to distribute and manage high server traffic effectively. Sticky session Load Balancer configuration and cookie-based persistence are required. For more information, refer to About Load Balancing.
Installing the Application on both Servers
Users can choose between hosting Decisions on Windows self-hosted or IIS, based on their use case. For more information on installation, refer to the Installation Guide.
Self Hosted
On Machine 1
Run the Decisions installer as an Administrator.
Make sure to copy and save all configuration details entered during installation. Copied data will be used during the installation on the second server.
To start the installation process, click on the "Install" button.
Review the Software License Agreement. Check the “I accept the terms of the License Agreement” box. Click Next.
From the Installation Type window, select the “Standard Server (Prod and Non-Prod)”. There is no need to select “Show Advanced Setting” as this is a self-hosted installation. Click Next.
From the Settings window, Enable “Show Service Settings”.
From the Service Settings window, select “Specify Account”. Enter the Username and Password of the admin account available on all the servers.
Configure the Database Setup. Click Next.
From the Initial User Setup, provide an Email and Password. This will be an administrator account used to log in to Decisions after completing the installation process. Click Next.
From the “Specify Portal Base URL” window,
Enable HTTPS.
Enable Http to Https Redirection.
Enter the HTTPS Port and configure the certificate settings.
Enable “Override Portal Base URL” and enter the Fully Qualified Domain Name (FQDN). E.g.
https://cluster.decisions.com
.
Configure the SMTP settings. Click Next.
Click Next on the Encryption Keys window.
Change the File Storage Path to the shared file storage.
The installer will run a system Requirements Check. Click Next.
Review the settings on the “Review Install Options” screen. If you want to make changes, go back to that window. Otherwise, click Next.
Once the installation is finished, the Decisions Login screen will appear.
On Machine 2
Repeat all the steps performed on Machine 1, making sure to input identical configuration details for the Service Account, Base URL, Database, and File storage location as those for Machine 1.
IIS Hosted
Please note that before installing and hosting Decisionson on IIS. For more information, refer to the article Prerequisites for IIS Hosting. Ensure to perform the same on both machines.
On Machine 1
Run the Decisions installer as an Administrator.
To start the installation process, click on the "Install" button.
Review the Software License Agreement. Check the “I accept the terms of the License Agreement” box. Click Next.
From the Installation Type window, select “Standard Server (Prod and Non-Prod)” and select “Show Advanced Settings” at the bottom of the screen. Click Next.
From the Settings window, Enable “Show Service Settings”.
From the Service Settings window, select “Specify Account”. Enter the Username and Password of the admin account available on all the servers.
Configure the Database Setup. Click Next.
From the Initial User Setup, provide an Email and Password. This will be an administrator account used to log in to Decisions after completing the installation process. Click Next.
From the Hosting Options, select “IIS Hosting”.
From the “Specify Portal Base URL” window, enter the Fully Qualified Domain Name (FQDN). E.g.,
Install On Root: Enabling will install the application at the root level of the Website in IIS. If not, users can append the URL to install it under their own custom Site. E.g.,
https://cluster.decisions.com/[site_name]
From the Web Application window, select the desired Web Site and Application Pool.
Configure the SMTP settings. Click Next.
Click Next on the Encryption Keys window.
Change the File Storage Path to the shared file storage.
The installer will run a system Requirements Check. Click Next.
Review the settings on the “Review Install Options” screen. If you want to make changes, go back to that window. Otherwise, click Next.
Once the installation is finished, the Decisions Login screen will appear.
On Machine 2
Repeat all the steps performed on Machine 1, making sure to input identical configuration details for the Service Account, Base URL, Database, and File storage location as those for Machine 1.
Configuring Post Installation on IIS
Users need to set the Application Preload to true after completing the installation on both Machines. For more information, refer to Application Preload (Post Installation).
Establishing communication between Applications
To establish successful communication between Decisions applications, users must configure the following settings,
1. Adding ClusterPortalBaseURL to Settings.xml
Locate the settings.xml file at C:\Program Files\Decisions\Decisions Server. Open the file as an administrator and configure the following settings.
Note:
ClusterPortalBaseURL
andPortalBaseURL
must be different. These two variables cannot have the same value.
Example Values:
#On Node 1:
<ClusterPortalBaseURL>https://node1.decisions.com</ClusterPortalBaseURL>
#On Node 2:
<ClusterPortalBaseURL>https://node2.decisions.com</ClusterPortalBaseURL>
Restart all the nodes once the Settings.xml file is updated.
2. Adding Host Entries to create a DNS resolution
The nodes must communicate over a secure internal network on the valid https port. The most effective way to ensure proper functionality is to create DNS Host entries in the host files. This allows each server to resolve the DNS of the other server, facilitating direct communication. In a clustered environment, this mutual DNS resolution helps in internal communication between the nodes.
Note:
The Certificates need to be valid for each of the node URLs. Usually, a Wildcard certificate works best in this scenario.
Open the Host file located at C:\Windows\System32\Drivers\etc. Enter ClusterPortalBaseURL
of all the nodes with their respective IP addresses. For example, adding a host entry of node2 on node1 and vice versa.
#On Node 1:
10.10.10.20 node2.decisions.com
#On Node 2:
10.10.10.10 node1.decisions.com
3. Configuring Load Balancer
All Load Balancer configurations should be done solely by the customer since there are no configurations at the Decisions server.
When choosing a load balancer, there are two key points to consider:
Decisions require Sticky Session for load balancer configuration to make sure a user's session interacts with the same server within the cluster for the duration of the session. If available, Cookie-Based Session Persistence is recommended; this uses a cookie to uniquely identify a session and later references that cookie to push the connection to the appropriate server.
Decisions use WebSockets to maintain Sticky Session persistence. Make sure that WebSocket support is enabled on the load balancer.
WebSocket URL:
[PortalBaseURL]/events
For more information, refer to Load Balancing.
4. Configuring Redis
After installing Decisions on all the machines, configure the Redis URL to assist external caching between clustered instances.
Admin users must configure the Redis URL only on one node, and it should automatically get updated on all other nodes because all nodes are directed to the same Database. For more information, refer to Connecting to the Redis server.
5. If SSL is Terminated at the Load Balancer
If in case users want to terminate SSL at load balancer ensure to configure the following server settings.
Ensure that the
EnableHttp
is set to true in Settings.xml.When SSL is terminated the servers send requests in HTTP to the load balancer, but the load balancer (LB) is set up to accept only HTTPS, then
ForceBaseURI
helps to send specific data in HTTPS. Users must add the following settings to Settings.xml.
<ForceBaseURI>LoadBalancerURL</ForceBaseURI>
Validating the Clustered environments
Go to each server and verify that the platform can be logged in from HTTP (unless intentionally removed) and HTTPS in a local browser session.
Log in to each server in the cluster and verify that each one can write a file for the shared file storage.
Check Load Balancer Timeout: try adding a document to a Folder over 100MB and see if it trips the LB Timeout threshold.
Navigate to the Decisions via the Load Balancer URL, locate the Servers Report, and find the server that has Is Me set to true to affirm which Server the Administrator is currently on.
Turn off the Is Me identified server. Navigate again via the Load Balancer URL, and ensure that the redirection goes to the other (still active) server after the timeout duration configured in the Load BalancerSettings has passed.Ensure the Load Balancer Health Check settings are up. Turn one server off and verify that it becomes red or negative on the Health Check Report, then repeat these same steps with any additional servers.
Begin turning back on each server to ensure that they return to a healthy state when online.Remote into each server, then open a browser and ensure that the IP Address of the other nodes in the cluster can be reached.
Repeat this process for every node in the cluster to ensure each node can reach the Login Page for every other node in the cluster from a local browser session.Add/update an Account on one node. Log in to the other node and ensure the changes appear there too.
Go to a node in the cluster, log in to the Decision, and create a new Project.
Log out and go to each additional node in the cluster to confirm that this Project exists.Then, while in the Project Folder, create a new Flow that sends an email. Go straight to each node to ensure that the appropriate party receives the email sent from each local Flow run.
Learn Next:
Setup an Azure Application Gateways: Configuring Azure Application Gateway
License a Decisions server: Self-Service Licensing Guide
How Scheduled Jobs are operated in a Clustered Environment: Understanding Scheduled Jobs in Clustering