Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

CXO-Cockpit can be scaled out to multiple servers to increase the system responsiveness and/or to implement failover scenarios. This article explains how to install the CXO-Cockpit on multiple servers.

Load balancing for the CXO-Cockpit Web Application


Image RemovedImage Added

CXO-Cockpit web application can be installed on several servers. There should be a load balancer provided by the destination infrastructure that passes the HTTP(s) requests from the clients through to one of the available CXO-Cockpit servers. The only requirement to the load balancer is that it must implement "sticky sessions" scenario: all subsequent requests from a certain client must end up to the same CXO-Cockpit server as the first request from that client. The most typical implementation of this scenario is "Cookie-based Persistence". In this scenario the load balancer appends a cookie to the first client's request that cookie is used later on to identify the server all the subsequent requests should be forwarded to.

...

In this scenario every CXO-Cockpit server has all the components including Windows Services installed. In this setup all the servers are equal but the disadvantage of this scenario is the performance loss and extra load on the database server caused by additional running services. The following table demonstrates which components must be installed on every server:

ComponentTypeApplicabilityComments
Web Reporting SuiteIIS Web applicationMust be installed on every server
Storyboard Export ServiceWindows ServiceMust be installed on every server
Agent ServiceWindows Service

Must be installed on every server, but the service must only be enabled on one sever

The Agent service can be installed on every CXO-Cockpit server but the service must only be enabled on one sever. On all other servers the service must be disabled. If the server that hosts the running instance of the Agent crashes, a service on another server should be enabled and started. There should not be 2 or more instances of the Agent Service running at the same time.

The agent service is used for the background scenarios and not directly involved in the dashboard report generation. The system remains functional if the Agent Service is not working for a short period of time.

CXO-ConfiguratorWindows applicationMust be installed on every CXO-Cockpit server
CXO Source System ManagerWindows applicationShould be installed on the server

A client Windows-based tool. This tool is used to configure the connections to the external systems. In the future this windows tool will be replaced by a web-based version. It's still recommended to have this tool installed on every CXO-Cockpit server.

Option 2. Dedicated web servers cluster + Jobs server

In this scenario there are N CXO-Cockpit servers and 1 or more Jobs servers. The application server is a server dedicated to the Windows Services. Typically 1 Application Server can handle all the load but extra Application Server might be required for the failover scenario.

ComponentTypeApplicabilityComments
Web Reporting SuiteIIS Web applicationMust be installed on every web server
Storyboard Export ServiceWindows ServiceMust be installed only on Jobs application server

The Storyboard Export Service is used for exporting of reports to PDF, Excel and Powerpoint files. The service is not directly involved in the dashboard report generation. The system remains functional if the service is not working but the export jobs will not be processed.

Agent ServiceWindows Service

Must be installed only on the Jobs server

The Agent service can be installed on every CXO-Cockpit server but the service must only be enabled on one sever. On all other servers the service must be disabled. If the server that hosts the running instance of the Agent crashes, a service on another server should be enabled and started. There should not be 2 or more instances of the Agent Service running at the same time.

The agent service is used for the background scenarios and not directly involved in the dashboard report generation. The system remains functional if the Agent Service is not working for a short period of time.

CXO-ConfiguratorWindows applicationMust be installed on every CXO-Cockpit server
CXO Source System ManagerWindows applicationShould be installed on the server

A client Windows-based tool. This tool is used to configure the connections to the external systems. In the future this windows tool will be replaced by a web-based version. It's still recommended to have this tool installed on every CXO-Cockpit server.

The following table shows which components should be installed in the a multi-server setup.

Load-balanced setup check list

...

Installation guide

There are 2 main deployment strategies for the multi-server setup is correct. CXO-Cockpit

...

Scalability of other components and the deployment strategy

...

Should be installed on one server

...

High Availability note:

The Agent service can be installed on every CXO-Cockpit server but the service must only be enabled on one sever. On all other servers the service must be disabled. If the server that hosts the running instance of the Agent crashes, a service on another server can be enabled and started. There should not be 2 or more instances of the Agent Service running at the same time.

The agent service is used for the background scenarios and not directly involved in the dashboard report generation. The system remains functional if the Agent Service is not working for a short period of time.

...

This tool is used to configure the connections to the external systems. In the future this windows tool will be replaced by a web-based version.

It's still recommended to have this tool installed on every CXO-Cockpit server.

Configure BackPlane database

In order for CXO-Cockpit to run properly in the load-ballanced environemnt, the BackPlane database must be created.

To create the Backplane database, run the configurator in the Maintenance tab click on the Backplane Settings link to open the form allowing you to create or select your Backplane database.

Image Removed

In this form you will be first asked to insert an existing Microsoft SQL Server server name.

The second field allow you to insert the name of either a database you wish to create or an already existing database.

Finally enter the credentials of your Microsoft SQL server server.

You can test the connection by pressing the Test button.

Creating a Backplane Database

You have two options concerning the creation of a new Backplane Database:

Create a new database manually and provide it to the configurator.

if you choose to do so make sure that the database is empty and has its Service Broker enabled. It is important for performance reasons. 

if you are not sure you can run the following script:

...

Image Removed

if the Service Broker is not enabled you can enable it by running the following script:

...

ALTER DATABASE YOUR_DATABASE SET ENABLE_BROKER

Let the configurator create the database for you.

To do so, simply enter the name of a non existing database in the field Database name¹ and press Create. The configurator will enable the Service Broker for you.

/!\  Once you application is deployed the database will be managed by CXO-Cockpit. Do not alter it manually.

1.If you entered the name of an already existing database before pressing the create button a new Database will not be created. the configurator will, however, verify that the specified database can be used as Backplane database.components should be installed according to the applicability for selected deployment strategy. After the installation of the CXO-Cockpit components, the following configuration steps must be performed.

  1. Create services in the Configurator for all of the installed components on every server
  2. Disable CXO-Cockpit Agent Service on all the machines except one
  3. Create and Configure Backplane database
  4. Configure a network path is configured for the export files location
  5. Specify load balancer url as CXO-Cockpit Dashboard Url