CXO -Cockpit Software 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 Software on multiple servers.
Load balancing for the CXO
...
Software Web Application
CXO -Cockpit Software 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 Software 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 Software 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.
Deployment Strategies
CXO -Cockpit Software is delivered as an IIS web application, 2 Windows services and 2 Windows applications. There are 2 possible deployment strategy: Multi-purpose servers cluster and Dedicated web servers cluster + Jobs server installations. The primarily difference between them is whether the Windows services are going to be installed on every CXO -Cockpit Software Web server or on a separate server.
...
In this scenario every CXO -Cockpit Software 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:
Component | Type | Applicability | Comments |
---|---|---|---|
Web Reporting Suite | IIS Web application | Must be installed on every server | |
Storyboard Export Service | Windows Service | Must be installed on every server | |
Agent Service | Windows 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 Software 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-Configurator | Windows application | Must be installed on every CXO -Cockpit Software server | |
CXO Source System Manager | Windows application | Should 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 Software server. |
Option 2. Dedicated web servers cluster + Jobs server
In this scenario there are N CXO -Cockpit Software servers and 1 or more Jobs servers (previously called Application servers). The Job 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.
Component | Type | Applicability | Comments |
---|---|---|---|
Web Reporting Suite | IIS Web application | Must be installed on every web server | |
Storyboard Export Service | Windows Service | Must be installed only on Jobs application server | The Storyboard Export Service is used for exporting of reports to PDF, Excel and Powerpoint 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 Service | Windows Service | Must be installed only on the Jobs server | The Agent service can be installed on every CXO -Cockpit Software 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-Configurator | Windows application | Must be installed on every CXO -Cockpit Software server | |
CXO Source System Manager | Windows application | Should 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 Software server. |
Installation guide
There are 2 main deployment strategies for the multi-server setup. CXO -Cockpit Software components should be installed according to the applicability for selected deployment strategy. After the installation of the CXO -Cockpit Software components, the following configuration steps must be performed.
- Create services in the Configurator for all of the installed components on every server
- Disable CXO -Cockpit Software Agent Service on all the machines except one
- Create and Configure Backplane database
Expand title Configure a network path for the export files location There should be specified a network path that is accessible from all the CXO-Cockpit servers. All the service accounts that CXO-Cockpit components are running under mush be authorized to change files at the specified location
Configure load balancing across all the CXO -Cockpit Software web servers and enable sticky sessions on the load balancer
Expand title Specify load balancer url as CXO-Cockpit Dashboard Url There should be specified a load-balanced url
...
- "Sticky sessions" scenario must be cofiguredconfigured: all subsequent requests from a certain client must end up to the same CXO -Cockpit Software server as the first request from that client. The most typical implementation of this scenario is "Cookie-based Persistence"
- The requests to the CXO -Cockpit Software server should include the following headers:
- "X-Forwarded-Host" should contain the original host name used in the end-user request. This host name can only equal to the host name used in the CXO -Cockpit Software Dashboard URL (as configured in the Configurator), otherwise it will be ignored.
- "X-Forwarded-Proto" should contain the original protocol used in the end-user request. Note, that this header is not required if the same protocol (HTTPS) is used on load balancer and on the individual CXO -Cockpit Software servers.