Service Creatio, customer center edition
PDF
This documentation is valid for Creatio version 7.16.0. We recommend using the newest version of Creatio documentation.

Set up a web-farm for Creatio application server

You can enhance the performance of large-scale Creatio projects (up to several thousand users) through horizontal scaling, i.e., increasing the number of servers with deployed Creatio applications and distributing the workload between them.

The load balancer may be either hardware or software. To work in fault-tolerant mode, use the HTTP/HTTPS traffic balancer that supports the WebSocket protocol. Creatio has been tested on HAProxy software load balancer. There are cases of successful implementation of other balancers, e.g., Citrix, Cisco, NginX, FortiGate, MS ARR.

This guide covers horizontal scaling of Creatio application using a free open-source load balancer (HAProxy), designed for distributing the load between several application servers.

General deployment procedure

To deploy Creatio with horizontal scaling of .NET Framework application servers:

1.Deploy all needed Creatio application instances in a web-farm.

Note

It is recommended to specify identical names in IIS and the Application pool setting for all instances of the application.

2.Specify the same SQL and Redis databases in the ConnectionStrings.config file for all instances.

<add name="redis" connectionString="host=DOMAIN.COM;db=0;port=6379;maxReadPoolSize=10;maxWritePoolSize=500"/>
<add name="db" connectionString="Data Source=DOMAIN.COM;Initial Catalog=DatabaseName;Integrated Security=SSPI; MultipleActiveResultSets=True;Pooling-true;Max Pool Size=100"/>

3.In the <appSettings> block of the application’s “Web.config” file, add the following key:

<add key="TenantId" value="1" />

The “value” number should be the same for all application instances of the web-farm.

Attention

Starting with Creatio version 7.14.1, the <add key="TenantId" value="...”/> key can only be added to the internal Web.config file (Terrasoft.WebApp\Web.config). Adding the key to an external Web.config file may lead to application failures.

4.For each application, specify the same machineKey values for all sites in the Web.config file.

5.Grant access permissions to created application directories for the IUSR user and the user who launches the Application pool in IIS.

6.Set up a load balancer (e.g., HAProxy) for distributing the workload between the deployed application servers.

7.If necessary, set up workload balancing for database and session servers.

Note

More information about the clustering setup is available in the MSSQL and Oracle user guides. The fault tolerance setup using Redis Sentinel is described in a separate article.

To deploy Creatio with horizontal scaling of .NET Core application servers:

1.Deploy the needed number of Creatio application instances.

2.Specify the same SQL and Redis databases in the ConnectionStrings.config file for all instances.

3.Navigate to the root application directory of any application instances (the root directory contains the Terrasoft.WebHost.dll file).

4.Run the following command:

dotnet Terrasoft.WebHost.dll configureWebFarmMode

As a result, configuration files of the current application instance will be updated.

5.Copy all configuration files of the current application instance to the root folders of the other application instances.

6.Set up a load balancer (e.g., HAProxy) for distributing the workload between the deployed application servers.

7.If necessary, set up workload balancing for database and session servers.

Note

More information about the clustering setup is available in the documentation provided by the vendor of the DBMS. The fault tolerance setup using Redis Sentinel is described in a separate article.

See also

Install HAProxy balancer

Set up HAProxy balancer

Did you find this information useful?

How can we improve it?