Should I use Nomad for single VM?
I'm looking for some architectural advice on building a lightweight, self-hosted job execution platform on a single VM (8C/32GB).
I want something with semantics similar to Google Cloud Run / Cloud Run Jobs:
- Execute Python scripts and arbitrary Docker containers.
- Trigger jobs through an API.
- Configure CPU, memory, environment variables, timeouts, etc.
- Track execution status, exit codes, and logs.
- Handle retries and concurrency limits.
- Integration with Artifact/Container Registry
Current constraints:
- Only one VM for now & no need for HA.
- No Kubernetes requirement or plans for a multi-node cluster.
- Jobs are primarily internal workloads, and quite lightweight.
- I'd prefer something relatively lightweight and easy to maintain.
Technologies I'm considering
- HashiCorp Nomad
- Docker Sock + custom built runner – Build my own execution manager, scheduling, lifecycle management, and monitoring.
Questions
- Is Nomad overkill for a single VM? Does it provide enough value over simply using Docker directly?
- Would you use Nomad in production for this use case?
- Are there simpler alternatives that provide similar execution semantics?
- What operational overhead should I expect from running Nomad on a single node?
I'm particularly interested in hearing from people who have actually run Nomad in production, especially for single-node deployments.
Thanks!
[link] [comments]