Deployment

Cryo does not replace Trino or Apache Spark. It plans maintenance and admits the work to the engines you already run. Deploy it as a Helm chart and keep your engines where they are.

Updated 1 min readEdit this pageReport an issueView as Markdown
On this page

Cryo on Kubernetes#

Figure 1Helm installs Cryo; PostgreSQL, Redis and the engines stay yours
Helm installs Cryo; PostgreSQL, Redis and the engines stay yoursThe Helm release runs the API, Web, Scheduler, Governor, Worker and a Scanner CronJob. PostgreSQL and Redis are required but live outside the chart. Trino and Spark stay outside the chart too.Cryo Helm releasedeploy/helm/cryoRequired storesbring your ownEngines you already runstateexecuteAPIFastAPIWeboperator UISchedulerleader-electedGovernorleader-elected, bounds concurrencyWorkerscale for throughput, not concurrencyScanner CronJobseparate from the scanner workersPostgreSQLstate, stats, auditRedisqueue and locksTrinoTrino SQLSpark on EMRSpark SQL
The Helm release holds Cryo's services. PostgreSQL and Redis are yours, and so are the engines.
  • Write or execute
Text description
  • Cryo Helm release to Required stores (state)
  • Cryo Helm release to Engines you already run (execute)

The scheduler and the governor are leader-elected, so several replicas may start but only one is active. Scaling workers does not by itself raise OPTIMIZE concurrency, because the governor bounds real concurrency against engine load.

Layout in three lines#

Helm chart
The chart lives at deploy/helm/cryo. Defaults are committed, and overrides are per environment.
Stores
PostgreSQL and Redis are required. Both are external to the chart, so you can bring managed services.
Engines
Engines stay outside the chart. Cryo reaches them through source and destination configs stored in the database.

Request floor#

These are the resources the committed Helm defaults request when Cryo is idle, summed across replicas. scannerWorker is the ad-hoc scan consumer, not the scanner CronJob.

ServiceCPU (cores)Memory (GiB)
api0.501.50
worker1.002.00
governor0.250.50
scheduler0.100.50
scannerWorker1.501.50
Total3.356.00

Reproduce the table from the chart defaults:

terminal
make deployment-footprint