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.

Note This chapter provides links to the diagrams for reference, but the diagrams might not suit all use cases. Customize the architecture to the specific requirements and the infrastructure of your organization.

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.

Table 1. SystemLink Enterprise External Dependencies
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.

Table 2. SystemLink Enterprise Infrastructure Components
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:

  • Web application
  • API
  • Salt
These interfaces map to three hostnames. Users use the web application ingress and host to access the SystemLink Web application. Targets and applications use the API ingress and host to access data and resources via the SystemLink REST API. The Salt ingress and host connect targets to SystemLink Enterprise hosted Salt master. For more information on configuring these hostnames, refer to Layer 7 (Application) Ingress and Layer 4 (TCP) Ingress.

SystemLink Enterprise Test Systems

SystemLink Enterprise connects to and manages the test systems called targets.

Table 3. SystemLink Enterprise Test Systems
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.

Note The linked diagrams are reference examples for deploying SystemLink Enterprise on AWS and Azure. Your actual deployment might differ based on your the specific requirements, security policies, and existing infrastructure of your organization.