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).
The server or cluster that you deploy Structural to must at a minimum have access to the following resources:
Resource | Requirement |
---|---|
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.
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
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+
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.
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.
The Structural application database (sometimes referred to as the metadata database) is a PostgreSQL database that stores the workspace and Structural configuration.
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.
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.
The user credentials that you provide to Structural for the application database must have permission to create a database, create tables, insert, and select.
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.
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.
By default, Structural uses the public
schema. You can optionally select a different schema.
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.
CPUs
8 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.