Agent Configuration in HA Set-up
Agent Groups can be configured based on their purpose. For example, the HA configuration can contain two Agent Groups. One contains Agents that are handling the interfaces in Frends and the other contains Agents that are executing Processes for heavy load batch processing. As a result of this, heavy batch processing does not impact performance of interface related Processes.
In order for a HA set-up to work, Agents need to have the same configuration, for example be installed on the same operating system, have the same access rights and have the same network location. The purpose of similar configuration is to enable share loading between Agents in the Agent Group. With Agents having different kinds of configuration, Agents may perform differently from each other, and load sharing does not operate as planned.
In case you have many Agents in an Agent Group, they will essentially form a farm configuration, where they share their configuration and state. This also requires the Agents to have a shared state store, an SQL database. Having Agents in a farm configuration activates the HA functionality by allowing the Agents to share load with one another and to take over the execution responsibilities of a failed Agent.
An optional alternative for High Availability configuration is to set-up and install an Agent with an external SQL database in an Agent Group behind the load balancer. Then when demand for performance increases new Agents can be installed in the Agent Group without a need to re-configure and install the first Agent.
High Availability on Triggers
Different Frends Triggers require a specific set-up for a High Availability configuration. A HA configuration design needs to take into account the different Triggers used in the Processes.
HTTP and API Triggers require a load balancer in the front of the Agent Group.
File, Schedule and Conditional Triggers require a shared state store through which Agents synchronize the Process execution triggering.
Service Bus, RabbitMQ and AMQP do not require any specific set-up for High Availability configuration.
Multiple Agents with no Shared SQL
If an Agent Store is not initialized all the Agents will use a local database for storing configuration information. The first Agent will be "Primary Agent", this Agent will be able to execute all Triggers. The other Agents will be able to run HTTP, API and Service Bus Triggers. If this mode is selected Schedule and File Triggers will not be run in High Availability mode.
This mode of installation is useful if you do not have an SQL server but still want to have redundancy and load balancing for HTTP Processes.
High Availability in Containers
High Availability is possible in a container set-up. In the case that the Frends license policies allow it, a set-up can be configured to scale containers based on load and the scaling rules the customer has configured in the container system.
The next article is Introduction to Process design for High Availability