Skip to end of banner
Go to start of banner

Planning a Groundplex Deployment

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »

In this Article

Overview

Groundplex deployment comprises many factors for consideration. Most of these considerations are because of IT requirements in your computing environment, but some also depend on Pipeline production and the types of Pipelines you plan to run in production.

Although Groundplex and Snaplex refer to the same thing, this article uses Snaplex in general when referring to the type of Asset in SnapLogic Manager, and Groundplex in the context of the computing resources underlying it.

Computing Requirements

The Groundplex must conform to the following minimum specifications:

Nodes (Min/Rec)

Minimum: 1

Recommended: 2 or more nodes

SnapLogic Project and Enterprise platform package nodes can be configured in the following sizes:

  • 2 vCPU and 8 GB RAM 

  • 4 vCPU and 16 GB RAM 

  • 8 vCPU and 32 GB RAM

  • 16 vCPU and 64 GB RAM

We recommend two nodes for high availability. For requirements about clustering nodes, refer to Node Cluster.

All nodes within a Snaplex must be of the same size.

RAM (Min)

Minimum: 8 GB

Depending on the size, number, and design of Pipelines, more RAM is required to maintain an acceptable level of performance.

CPU (Min)

Minimum: 2 core

All Snaps execute in parallel in their own threads: the more cores that are available to the Snaplex, the more performant the system.

DISK (Min/Rec)

Minimum: 40 GB

Recommended: 100 GB

Local disk space is required for logging and for any Snap that uses the local disk for temporary storage (for example, Sort and Join Snaps). For details, refer to Temporary Folder.

SnapLogic does not have restrictions on the disk size of your Groundplex nodes.

Memory (RAM) is used by the Pipelines to execute. Some Snaps, such as Sort Snaps, which accumulate many documents, consume more memory; the amount of memory used is influenced by the volume and size of the documents being processed. For an optimum sizing analysis based on your requirements, contact your SnapLogic Sales Engineer.

Supported Operating Systems

Groundplexes support the following operating systems:

  • CentOS (or Red Hat) Linux 6.3 or newer.

  • Debian and Ubuntu Linux.

  • Windows Server 2008 64-bit, Windows Server 2012, and Windows Server 2016 with a minimum of 8 GB RAM.

You can also deploy a Groundplex:

  • On a Docker container

  • In a Kubernetes Environment

For improved security, the Groundplex machine timestamp is verified to check if it is synchronized with the time stamp on the SnapLogic Cloud. Running a time service on the Groundplex node ensures that the timestamp is always kept synchronized.

A large clock skew can also affect communication between the FeedMaster and the JCC nodes. The Date.now() expression language function might be different between Snaplex nodes, and Internal log messages might have skewed time stamps, making it more difficult to debug issues.

Network Guidelines and Requirements

The following network guidelines and requirements apply to Groundplex deployments:

  • Network throughput

  • Network firewall

Network Throughput Guidelines

Groundplexes require connectivity to the SnapLogic Integration Cloud, and also connectivity to the cloud applications which may be used in your Tasks and Pipelines.

To optimize performance, we recommend the following network throughput guidelines:

Guideline

Minimum

Recommended

Network In (Min/Rec)

10 MB/second

15 MB/second+

Network Out (Min/Rec)

5 MB/second

10MB/second+

Network Firewall Requirements

To communicate with the SnapLogic Integration Cloud, Groundplexes use a combination of HTTPS requests and WebSockets communication over the TLS (SSL) tunnel. In order for this combination to operate effectively, configure the firewall to allow the following network communication requirements:

Feature

Required

Consequence

HTTP outbound Port 443

Yes

Does not function

HTTP HEAD

Desired

Without HEAD support, a full GET requires more time and bandwidth

Websockets (WSS protocol)

Yes

Does not function

JCC node: 8090 (HTTP), 8081 (HTTPS)

Feedmaster: 8090 (HTTP), 8084 (HTTPS), 8089 (Message queue)

Yes

Unable to reach Snaplex neighbor - https://hostname:8081

Needs to be available for communication between the nodes in a Snaplex.

  • The nodes of a Snaplex need to communicate among themselves, so it is important that they can each resolve each other's hostnames. This is required when you are making local calls into the Snaplex nodes for the execution of Pipelines rather than going through the SnapLogic Platform. The Pipelines are load balanced by SnapLogic with Tasks passed to the target node.

  • Communication between the customer-managed Groundplex and the SnapLogic-managed S3 bucket is over HTTPS with TLS enforced by default. The AWS-provided S3 URL also uses an HTTPS connection with TLS enforced by default. If direct access from the Groundplex to the SnapLogic AWS S3 bucket is blocked, then the connection to the AWS S3 bucket communication falls back to a connection via the SnapLogic Control Plane that still uses TLS 1.2.

Network Guidelines for Snap Usage

In the SnapLogic Platform, the Snaps actually communicate to and from the application endpoints. The protocols and ports required for this communication are mostly determined by the endpoints themselves, and not by SnapLogic. Cloud and SaaS applications commonly communicate using HTTPS, although older applications and non-cloud or SaaS applications might have their own requirements. 

For example:

Application

Protocol

Default Port

RedShift

TCP

5439

Netezza

TCP

5480

Salesforce

HTTPS

443

Oracle

TCP

1521

Each of these application connections may allow the use of a proxy for the network connection, but it is a configuration option of the application’s connection—not one applied by SnapLogic.

FeedMaster Node Ports

For Ultra Pipelines, the FeedMaster node listens on the following two ports:

  • 8084—The FeedMaster's HTTPS port. Requests for the pipelines are sent here as well as some internal requests from the other Groundplex nodes.

  • 8089—The FeedMaster's embedded ActiveMQ broker SSL port. The other Groundplex nodes connect to this port to send/receive messages.

The machine hosting the FeedMaster nodes needs to have those ports open on the local firewall, and the other Groundplex nodes need to allow outbound requests to the FeedMaster nodes on those ports.

Groundplex Nodes

Name

Every Snaplex requires a name, for example, ground-dev or ground-prod. In the SnapLogic Designer, you can choose which Snaplex where Pipelines are executed. The Self-managed Snaplex configuration has an Environment variable associated with it, for example, dev or prod. When you configure the nodes for your Groundplex, you must set the jcc.environment to the Environment value that you have configured for the Snaplex.

The hostname of the system used by a Groundplex can not have an underscore (_) in its name as per DNS standards. Avoid special characters as well.

After the Snaplex service is started on a node, the service connects to the SnapLogic Cloud service. Runtime logs from the Snaplex are written to the /opt/snaplogic/run/log (or c:\opt\snaplogic\run\log) directory. The Dashboard shows the nodes that are currently connected for each Snaplex.

Understanding the Distribution of Data Processing across Snaplex Nodes

When a Pipeline or Task is executed, the work is assigned to one of the JCC nodes in the Snaplex. Depending on a number of variables, the distribution of work across JCC nodes is determined by the number of threads in use, the amount of memory available, and the average system load.

To ensure that requests are being shared across JCC nodes, we recommend that you set up a load balancer to distribute the work across JCC nodes in the Snaplex.

Node Cluster

Starting multiple nodes with the JCC service pointing to the same Snaplex configuration automatically forms a cluster of nodes, as long as you follow these requirements for nodes in a Snaplex:

  • The nodes need to communicate with each other on the following ports: 8081, 8084, and 8090.

  • The nodes should have a reliable, low-latency network connection between them.

  • The nodes should be homogeneous in that they should have similar CPU and memory configurations, as well as access to the same network endpoints.

JCC Node Communication within a Groundplex

We recommend that you set up JCC nodes in a Snaplex within the same network and data center. Communication between JCC nodes in the same Snaplex is required for the following reasons:

  • The Pipeline Execute Snap communicates directly with neighboring JCC nodes in a Snaplex to start child Pipeline executions and send documents between parent and child Pipelines.

  • The data displayed in Data Preview is written to and read from neighboring JCC nodes in the Snaplex.

  • The requests and responses made in Ultra Pipelines are exchanged between a FeedMaster node and all of the JCC nodes in a  Snaplex.

  • A Ground Triggered Task (invoked from a Groundplex) can be executed on a neighboring JCC node due to load balancing—in which case, the prepare request and the bodies of the request and response are transferred between nodes.

Therefore, any extra latency or network hops between neighboring JCC nodes can introduce performance and reliability problems.

  • No labels