Choosing a Deployment Method
This guide helps you pick the right deployment approach based on your team’s needs, scale, and operational maturity.
Decision matrix
| Local CLI | Docker | Kubernetes | CloudQuery Platform | |
|---|---|---|---|---|
| Best for | Development, testing, one-off syncs | Small-to-medium production workloads | Large-scale, multi-source production | Teams wanting managed infrastructure |
| Setup complexity | Low — install binary and run | Low — single container | Medium — requires K8s cluster and Helm | Low — sign up and connect |
| Scaling | Single machine | Single host, limited scaling | Horizontal scaling across nodes | Managed by Platform |
| Scheduling | Manual or cron | cron or Docker-native scheduling | CronJob resource | Built-in UI scheduling |
| Maintenance | Minimal | Container updates | Cluster ops, Helm chart updates | Managed by CloudQuery |
| Monitoring | Manual/logs | Container logs | K8s observability stack | Built-in monitoring |
| Data residency | Full control | Full control | Full control | Depends on deployment (SaaS or self-hosted) |
When to use each option
Local CLI
Run CloudQuery directly on your machine. Best for:
- Getting started and learning CloudQuery
- Development and testing new configurations
- One-off data extractions or ad hoc queries
- CI/CD pipelines (e.g., GitHub Actions)
Docker
Run CloudQuery in a container. Best for:
- Small production deployments on a single host
- Teams already using Docker for other services
- Environments where installing binaries directly isn’t preferred
Kubernetes
Deploy CloudQuery on a Kubernetes cluster using Helm charts. Best for:
- Production workloads syncing from many sources
- Teams that already operate Kubernetes clusters
- Environments needing horizontal scaling and high availability
- Organizations with existing K8s observability and alerting
Options include:
- Kubernetes CronJob — schedule syncs as K8s CronJobs
- Amazon ECS — run on AWS ECS with Fargate or EC2
- Google Cloud Run — serverless containers on GCP
CloudQuery Platform
Use the managed service. Best for:
- Teams that want fast time-to-value without managing infrastructure
- Organizations that prefer a web UI for configuration and monitoring
- Smaller teams without dedicated infrastructure resources
- Teams that want built-in asset inventory, SQL console, and alerts
Orchestration options
If you’re running the CLI in production, you’ll typically pair it with an orchestrator for scheduling:
| Orchestrator | Complexity | Best for |
|---|---|---|
| cron | Low | Simple, single-machine setups |
| GitHub Actions | Low | CI/CD-integrated syncs, teams already on GitHub |
| Apache Airflow | Medium | Teams with existing Airflow infrastructure |
| Kestra | Medium | Event-driven workflows |
| Kubernetes CronJob | Medium | Teams already running K8s |
See the individual deployment guides for step-by-step instructions with each orchestrator.