...
in the etc/global.properties
by adding it to the Update Snaplex dialog, Node Properties tab, Global properties table.
Load Balancer Guidelines
A load balancer facilitates the efficient distribution of network or application traffic between client devices and backend servers. In the SnapLogic environment, a load balancer is for incoming requests to the Snaplex from client applications. This purpose differs from that of an HTTP proxy, which might be required for outbound requests from the Snaplex to the Control Plane or other endpoints. Typically, the HTTP proxy is required when Groundplex nodes are on client servers with a restricted network configuration.
Use Cases for a Load Balancer
You should provision a load balancer for a Snaplex when external client API calls are sent directly to the Snaplex nodes. We recommend a load balancer in the following use cases:
Snaplex-triggered Pipeline executions—Since the Control Plane triggering mechanism imposes additional Org level API limits, we recommend using the Snaplex triggering mechanism for high-volume API usage.
REST requests to Ultra Task Pipelines—For direct API calls to the Snaplex, the requests must pass through a load balancer. Without a load balancer, request failures occur, and the Snaplex eventually goes offline during Snaplex maintenance or upgrades.
API Policies—To apply API policies to APIs or Triggered and Ultra Tasks on a Cloudplex, you must have a load balancer, which SnapLogic provisions.
You can configure the load balancer to run health checks on the node, which ensure that the node going offline for maintenance does not receive any new requests.
After configuring the load balancer, you must add the load balancer URL to the Snaplex properties.
...
Only the Ultra Task Load balancer field needs to be configured since that enables load balancing for Triggered Task requests as well. Use the following guidelines:
If a load balancer points to a FeedMaster node, then you only need to configure the Ultra Task load balancer.
If the load balancer points to worker nodes, then you should only configure in Snaplex properties.
Use Cases where a Load Balancer is Not Required
Load balancers are not required for the following types of activities:
Pipeline executions triggered through the Control Plane.
Scheduled Pipelines, Pipeline/account validation, and Pipeline development.
Headless Ultra (since the Ultra Task processing is not driven by REST API calls).
Child Pipeline executions triggered through the Pipeline Execute Snap.
Cloudplex Load Balancer
On a Cloudplex, a load balancer is provisioned by SnapLogic, typically only when Ultra Task subscription feature is enabled. The Cloudplex load balancer has a snaplogic.io domain endpoint that points to the FeedMaster nodes. You can provision a load balancer for both Ultra and Snaplex triggered executions.
As an Org admin, you must update the Snaplex settings with the load balancer URL after the load balancer is provisioned.
Groundplex Load Balancer Best Practices
For Snaplex instances with FeedMaster nodes, the load balancer should point to the FeedMaster nodes, like https://fm-node1.example.com:8084 and https://fm-node2.example.com:8084. A FeedMaster node can process Triggered and Utra Task requests, a JCC can process only Triggered Task requests. In the latter case, it is easier to use the FeedMaster node as the load balancer endpoint. The Ultra Task load balancer field value needs to be updated in the Snaplex settings with the load balancer URL.
If there are no FeedMaster nodes, the load balancer can point to the JCC nodes, like https://jcc-node1.example.com:8081 and https://jcc-node2.example.com:8081. A JCC node can process only Triggered Task requests. Make sure you update the load balancer field value in the Snaplex settings with the load balancer URL.
You should configure the load balancer to run health checks on the Snaplex node on the /healthz URL. Any other response code besides 200 indicates a health check failure.
The load balancer should perform SSL offloading/termination so that the certificate and cipher management can be done on the load balancer without updating the Snaplex nodes. The connection between the client and the load balancer is over HTTPS with your signed certificate. The connection between the load balancer and the Snaplex nodes are also over HTTPS with the default SnapLogic generated certificate.
You must set the HTTP request timeout to a value of 900 or higher to allow for long-running requests. This timeout setting is different from the keep-alive timeouts that are used for connection management, like the following examples:
The proxy_read_timeout for Nginx.
The ProxyTimeout for Apache.
The idle timeout for AWS ELB.The following image from the AWS UI shows a sample health check configuration for the AWS ELB.
...
If you change the default ports of the JCC and FeedMaster nodes in your Groundplex, then you reconfigure your load balancer to use the new port assignments, which are 8081 for JCC and 8084 for FeedMaster. |