System requirements

You install Tonic Structural either on in a Docker container or on a Kubernetes cluster.

You cannot deploy Structural on Mac computers with Apple silicon (M1, M2).

Host environment

The server or cluster that you deploy Structural to must at a minimum have access to the following resources:

ResourceRequirement

CPUs

4 virtual CPUs Must use x86 CPU architecture (Structural does not support ARM architecture)

Memory

Minimum of 16GB

Recommend 32GB

Available hard drive space

Minimum 100GB

Recommend 250GB If you use subsetting, then we recommend that you use a non-burstable storage class, such as AWS io1, that is provisioned with and can sustain high input/output operations per second (IOPS). This can provide a significant performance improvement.

If your source database is larger than 500 GB and/or contains "large" (~1+ MB values) data such as JSONB, XML, NVARCHAR(max), then:

  • Increase the virtual CPUs to 8

  • Add 16GB to the minimum memory

If you have questions about the number of resources to allocate based on your source databases, contact support@tonic.ai.

Docker environment

For Docker, our recommendation is to use Linux with Docker and Docker Compose installed.

When you deploy Structural using Docker:

  • Both Docker and Docker Compose must be installed on the machine.

  • The Docker Daemon must be running.

The minimum required Docker version for future Structural compatibility is 20.10.10.

Note that by default, Docker sets its MTU (maximum transmission unit) to 1500. Make sure that the MTU for the Docker network matches your environment. Some networks, such as the Google Cloud Platform (GCP) VPCs, have a lower default MTU (1460 in the case of GCP VPCs), which causes network problems for your Structural instance.

To change the Docker MTU setting, you must:

Kubernetes environment

You can deploy Structural manually to a Kubernetes cluster. For a manual deployment, you must have:

  • A cluster created and configured.

  • A namespace to deploy Structural.

Both kubectl and helm must be installed on the machine. The minimum acceptable versions are:

  • kubectl: 1.17+

  • helm: 3+

Amazon ECS

You can run Structural on Amazon Elastic Container Service (Amazon ECS) on either Fargate or Amazon Elastic Compute Cloud (Amazon EC2) hosts.

Depending on your requirements, this can be either as a single or multiple task definitions.

For more information about Structural in Amazon ECS or example task definition files, contact Tonic.ai support.

Access to quay.io

The Structural images are obtained from quay.io. For manual deployment, Structural provides the required credentials for you to use.

If possible, allowlist *.quay.io.

If you cannot use a wildcard, then you can allowlist specific quay.io URLs. For example: quay.io, cdn.quay.io, cdn01.quay.io, cdn02.quay.io, cdn03.quay.io. The actual URLs are controlled by Quay. The following information on configuring a firewall includes a list of quay.io URLs.

If you cannot allowlist based on DNS names, you can allowlist the IP addresses. To get the IP addresses for a URL, run the URL through nslookup (for example, nslookup cdn01.quay.io). You then allowlist those IP addresses.

Structural application database

The Structural application database (sometimes referred to as the metadata database) is a PostgreSQL database that stores the workspace and Structural configuration.

External database server

In most cases, the Structural application database is an external database that is hosted on a separate server.

Instead of an external database, a deployment to Docker also provides an option to run PostgreSQL in a Docker container.

For an external database, one small host (for example, an RDS t3.small on AWS with at least 100 GB of storage) can serve as the PostgreSQL server.

If you plan to create file connector workspaces that use files from a local file system, make sure that the storage space can accommodate the uploaded and generated files.

To prevent the loss of Structural metadata, keep regular backups of the PostgreSQL instance.

PostgreSQL version

You should keep your PostgreSQL version relatively up-to-date with the current PostgreSQL LTS. The current recommended PostgreSQL version is 13+.

Tonic.ai might periodically conduct a campaign to request updates of self-hosted PostgreSQL instances before a scheduled update in the minimum supported version.

For the Structural application database, the current minimum supported version is PostgreSQL 10+.

Database user permissions

The user credentials that you provide to Structural for the application database must have permission to create a database, create tables, insert, and select.

uuid-ossp extension

The Structural application database requires the uuid-ossp extension

You must either:

  • Install the uuid-ossp extension.

  • Grant the account that Structural uses the necessary permissions to create the extension.

Docker container option for the Structural application database

For a deployment to Docker, you have the option to run PostgreSQL in a Docker container on the Structural application server.

If you use this configuration, mount the data directory for the PostgreSQL container on the host machine and schedule regular backups.

To enable this, uncomment the optional section in the docker-compose.yaml file that Structural provides.

Network access for Structural updates

For a Kubernetes deployment, Tonic Settings view includes an option to update Structural to the latest version.

To enable this option, Structural requires access to temp-tonic-release.s3.amazonaws.com.

NVIDIA GPU option for data science mode

For data science mode workspaces, the model training process can use GPU acceleration.

To enable the accelerated processing, the server where Structural is deployed must have access to NVIDIA GPU, 16GB GPU RAM.

To use GPU resources:

Platform-specific notes:

Last updated