Deployment Types

Choose the right deployment type for your use case - Docker Compose, Kubernetes, or standalone CLI.

Deployment Options

1. Docker Compose

Best for: Small teams, single-server deployments, evaluation

Components:

  • Backend server (Governor)

  • PostgreSQL metadata database

  • Platform agents (workers)

  • Web UI (served by backend)

Pros:

  • Easy setup (one command)

  • All-in-one deployment

  • Good for development/testing

  • Scales vertically (more CPU/RAM)

Cons:

  • Single server (no HA)

  • Limited horizontal scaling

  • Manual backup/recovery

2. Kubernetes (Helm)

Best for: Enterprise, cloud-native, high availability

Components:

  • Backend deployment

  • Worker deployment (scalable)

  • PostgreSQL StatefulSet

  • Ingress for web UI

Pros:

  • Horizontal scaling

  • High availability

  • Auto-recovery

  • Cloud-native

  • Production-ready

Cons:

  • More complex setup

  • Requires Kubernetes knowledge

  • Higher resource overhead

3. Standalone CLI

Best for: CI/CD automation, simple workflows, no UI needed

Components:

  • Single TDK CLI binary/container

  • No backend server

  • No metadata database

Pros:

  • Simplest deployment

  • No infrastructure needed

  • Perfect for automation

  • Fast startup

Cons:

  • No web UI

  • No workflow history

  • No user management

  • No scheduling

Setup: CLI Guide

Comparison Matrix

Feature Docker Compose Kubernetes CLI

Setup Complexity

Low

Medium

Very Low

Web UI

✓ Yes

✓ Yes

✗ No

Horizontal Scaling

Limited

✓ Yes

✗ No

High Availability

✗ No

✓ Yes

N/A

User Management

✓ Yes

✓ Yes

✗ No

Workflow History

✓ Yes

✓ Yes

✗ No

Scheduling

✓ Yes

✓ Yes

External (cron, etc.)

Resource Requirements

Medium

High

Low

Best Use Case

Dev/Test, Small Teams

Production, Enterprise

CI/CD, Automation

Choosing a Deployment Type

Use Docker Compose if:

  • Team size < 20 users

  • Single server is sufficient

  • Need web UI for occasional use

  • Want easy setup and maintenance

  • Not requiring high availability

Use Kubernetes if:

  • Enterprise deployment

  • Need high availability

  • Must scale horizontally

  • Cloud-native infrastructure

  • Multiple teams/projects

  • Require SLAs and uptime guarantees

Use CLI if:

  • Automating in CI/CD pipelines

  • No need for web UI

  • Simple, one-off transformations

  • Minimal infrastructure

  • Script-driven workflows

Hybrid Deployments

You can combine deployment types:

Example: Kubernetes backend + CLI for automation * Backend/UI on Kubernetes for interactive use * CLI in GitHub Actions for automated refreshes

Example: Docker Compose + external scheduling * Docker Compose for backend * Cron jobs trigger workflows via API

Migration Paths

Docker Compose → Kubernetes

  1. Export workflow configurations

  2. Set up Kubernetes cluster

  3. Deploy with Helm

  4. Import configurations

  5. Migrate metadata database

CLI → Docker Compose

  1. Convert CLI workflows to UI format

  2. Deploy Docker Compose

  3. Import workflows via UI or API

  4. Schedule workflows in UI