SystemLink Environment Architecture
- Updated2026-04-08
- 4 minute(s) read
SystemLink Enterprise is an application with a service-oriented architecture. Kubernetes hosted microservices compose the architecture. SystemLink Enterprise is scalable, fault-tolerant, and highly available. The following table summarizes the major components of the SystemLink Enterprise architecture.
SystemLink Enterprise Architecture
The linked diagram describes the components in the SystemLink Enterprise architecture.
Refer to the SystemLink Enterprise Kubernetes Architecture Diagram for an example SystemLink Enterprise deployment reference.
SystemLink Enterprise Kubernetes Cluster
The SystemLink Enterprise Kubernetes Cluster is a Linux Kubernetes cluster that hosts the pods that make up SystemLink Enterprise. The cluster consists of:
- SystemLink web services: Back-end microservices that provide REST APIs for core SystemLink capabilities. Examples include the Test Monitor service, File Ingestion service, Asset service, and Tag service.
- SystemLink web applications: Front-end user interface components that users interact with through a web browser.
- Salt Master: Manages secure connections to targets, target settings and configurations. Enables software installation workflows.
- Supporting infrastructure: Components such as RabbitMQ, Redis, Dremio, and Jupyter for messaging, caching, data queries, and notebook execution.
For information on node group configuration for optimal performance and optimal resource isolation, refer to Node Group Configuration.
External Dependencies
SystemLink Enterprise requires the following external systems for data storage, authentication, and search capabilities.
| Component | Description |
|---|---|
| Elasticsearch | Elasticsearch is a search engine. SystemLink uses Elasticsearch to improve search capabilities. SystemLink provides an optional starter Helm chart for running Elasticsearch in the same cluster as SystemLink Enterprise. For more information on configuring Elasticsearch, refer to Configuring Elasticsearch. |
| Identity Provider | The Identity Provider is the service SystemLink uses to authenticate and log users into the SystemLink web application. SystemLink Enterprise supports only OpenID Connect identity providers. For more information on how to connect your provider to SystemLink, refer to Identity and Access Management. |
| MongoDB | MongoDB is a document database. SystemLink uses the MongoDB wire protocol to communicate with the MongoDB instance. For more information on configuring MongoDB, refer to Configuring the MongoDB Database. |
| Object Storage | Object Storage refers to the Amazon S3, S3 compatible, or Azure Blob storage system used by SystemLink services that require bulk file storage. |
| PostgreSQL | PostgreSQL is a relational database. SystemLink uses PostgreSQL for data storage. For more information on configuring PostgreSQL, refer to PostgreSQL. |
SystemLink Enterprise Infrastructure
The following infrastructure components are required for deploying and accessing SystemLink Enterprise.
| Component | Description |
|---|---|
| Artifact Repository | An Open Container Initiative (OCI) registry with the SystemLink containers and Helm charts. You can use the NI artifact repository or stage containers and Helm charts in your own repository. For more information, refer to Configuring SystemLink Repositories. |
| Network Interfaces | SystemLink uses three network interfaces in its normal operation:
|
SystemLink Enterprise Test Systems
SystemLink Enterprise connects to and manages the test systems called targets.
| Component | Description |
|---|---|
| Targets |
Targets are securely connected test systems that SystemLink manages. Targets upload test results, status, and health data to SystemLink. These systems can have Windows and NI Linux Real-Time operating systems. Targets communicate with SystemLink over HTTPS and the SaltStack TCP protocol. Regardless of protocol, test systems initiate all communication to the server. For information on adding a target to your SystemLink server, refer to Setting Up a SystemLink Client. SystemLink communicates tags, files, assets, and test results over HTTPS. Salt jobs and pillars communicate over the AES encrypted Salt TCP transport. Salt jobs are used for installing software and for changing target configuration from the SystemLink server. When you use private certificate authorities certificates, Salt transmits SystemLink certificates. This transmission ensures that targets can establish trust with SystemLink. Targets do not require manual management of these certificates. For an overview of the Salt TCP Transport, refer to the SaltStack TCP Transport Documentation. When an authorized user approves a target in SystemLink, the target becomes a managed system. SystemLink then securely transfers the configuration, certificates, and credentials necessary for the target to authenticate with SystemLink. SystemLink Client Python and LabVIEW APIs include auto configuration functions that automatically consume these credentials. You do not have to include secrets, such as credentials, in your test application code. |
Node Group Configuration
For optimal performance and optimal resource isolation, configure the following components to run in their own dedicated node groups and pools:
- SystemLink web services and web applications
- Jupyter Notebook and notebook execution
- Data Frame Service and its dependency, Dremio
For a sample YAML file for configuring node selectors, refer to node-selectors.yaml.
Cloud Provider Specific Architecture
Refer to the AWS SystemLink Enterprise Kubernetes Architecture Diagram and Azure SystemLink Enterprise Kubernetes Architecture Diagram for example AWS and Azure deployments.
Related Information
- SystemLink Enterprise Kubernetes Architecture Diagram
- AWS SystemLink Enterprise Kubernetes Architecture Diagram
- Azure SystemLink Enterprise Kubernetes Architecture Diagram
- Setting Up a SystemLink Client
- SaltStack TCP transport documentation
- MongoDB TLS/SSL documentation
- Configuring MongoDB for SystemLink Enterprise
SystemLink Enterprise requires an external MongoDB database. You must provision and manage your own MongoDB replica set or sets before deploying SystemLink Enterprise. This section outlines deployment options, required database credentials, and connection string configuration.
- PostgreSQL
PostgreSQL is required for the dashboard host service, test monitor service, and dynamic form fields service.
- Configuring an Elasticsearch Instance
Configure SystemLink Enterprise to access a remote Elasticsearch database to enhance scalability and performance.
- Identity and Access Management
SystemLink Enterprise supports user authentication through OpenID Connect (OIDC). This section provides configuration parameters and options for integrating with external identity providers and managing user roles.
- Layer 7 (Application) Ingress
Layer 7 ingress provides application-level HTTPS load balancing and routing for web services. SystemLink Enterprise uses Layer 7 ingress to expose HTTP-based services through two separate ingress endpoints: one endpoint for the web UI and one endpoint for API access.
- Layer 4 (TCP) Ingress
Layer 4 ingress provides TCP-level load balancing for services that require direct TCP connections. SystemLink Enterprise uses Layer 4 ingress for the Salt Master service.
- Configuring SystemLink Repositories
Configure the NI public Helm repository and mirror it on an internal server.
- node-selectors.yaml
- Preparing to Host and Operate SystemLink Enterprise
Before installing SystemLink Enterprise, ensure that the following network, compute, storage, and security infrastructure is in place.
- AWS VPC
A Virtual Private Cloud (VPC) is an isolated network environment within AWS.
- Azure VNet
An Azure Virtual Network (VNet) is an isolated network environment within Azure.
- SystemLink Enterprise in AWS EKS
Amazon Elastic Kubernetes Service (EKS) is a managed Kubernetes service that simplifies running Kubernetes on AWS without needing to install and operate your own Kubernetes control plane.
- SystemLink Enterprise in Azure AKS
Azure Kubernetes Service (AKS) is a managed Kubernetes service that simplifies running Kubernetes on Azure without needing to install and operate your own Kubernetes control plane.