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:
If your source database is larger than 500 GB and/or contains "large" (~1+ MB values) data such as JSONB, XML, NVARCHAR(max), then 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:
Change it in the Docker daemon configuration
On the Structural Docker network, set the driver bridge option
com.docker.network.driver.mtu
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
For the Structural application database, the current minimum supported version is PostgreSQL 12+. The current recommended version is 14+.
You should keep your PostgreSQL version relatively up-to-date with the current PostgreSQL LTS.
Tonic.ai might periodically conduct a campaign to request updates of self-hosted PostgreSQL instances before a scheduled update in the minimum supported version.
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, Structural 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:
Ensure that the correct NVIDIA drivers are installed for your instance.
If deploying on Kubernetes, follow the instructions at Kubernetes on NVIDIA GPUs.
If deploying on Docker, follow the Docker GPU instructions.
Platform-specific notes:
AWS ships several Deep Learning AMI with NVIDIA drivers pre-installed.
On Azure, you can add an extension to your VM to pre-install NVIDIA drivers.
For information on installing NVIDIA drivers on GCP, see the GCP instructions.
Last updated