Skip to content
Comparison

Comparison

Decision Matrix

Dimension np Kubernetes Nomad Docker Compose
Install size ~20 MB binary ~2 GB (control plane) ~100 MB binary ~50 MB (Docker)
Time to first deploy < 5 minutes Hours to days Minutes (assembly required) < 5 minutes
Recommended nodes 3-100 30-10,000 5-500 1
Built-in ingress Traefik (auto) Requires ingress controller None None
Built-in service discovery Consul (auto) CoreDNS (manual) Consul (manual) None
Built-in observability OpenObserve (auto) Requires separate stack None None
Health checks Built-in Built-in Built-in docker healthcheck
Rolling updates Yes Yes Yes No
Auto-restart Yes Yes Yes restart: always
Multi-node Yes Yes Yes With Swarm (complex)
Native binary support Yes No (containers only) Yes No (containers only)
Configuration 1 YAML file 10+ YAML files per service Job spec + glue code docker-compose.yml
Learning curve Minutes Weeks Days (assembly) Minutes

vs Kubernetes

What K8s does well

Kubernetes is the industry standard for large-scale container orchestration. It has the largest ecosystem, the most integrations, and runs at Google scale.

Where np differs

  • No etcd: np uses Consul for both service discovery and configuration.
  • No pods: np deploys jobs directly — no abstraction layers.
  • No YAML engineering: One np.yaml vs 10+ Kubernetes manifests per service.
  • No container requirement: np runs binaries directly. No Dockerfile needed.
  • No ops team required: One person can operate a full np cluster.

When to use Kubernetes

  • You have 100+ nodes
  • You need multi-cloud workload portability
  • Your team already knows K8s and has the ops bandwidth
  • You need the K8s ecosystem (operators, CRDs, Helm charts)

vs Bare Nomad

What Nomad does well

Nomad is a brilliant scheduler — simple, reliable, and “just works.” It handles binary, Docker, and Java workloads equally well.

Where np differs

np is the battery-included layer on top of Nomad:

Nomad gives you np adds
Job scheduling One-command deployment (np deploy)
Raw API Clean CLI with rich output
Nothing for ingress Traefik auto-configured
Nothing for logs OpenObserve auto-configured
Nothing for metrics Unified dashboard
Manual Consul setup Consul auto-bootstrapped

When to use bare Nomad

  • You already have your own ingress, monitoring, and logging stack
  • You want full control over every Nomad configuration detail
  • You’re integrating Nomad into an existing platform

vs Docker Compose

What Compose does well

Docker Compose is the simplest way to run multi-container apps on a single machine. It’s perfect for development environments.

Where np differs

  • Multi-node: Compose is single-node. np spans your entire cluster.
  • Health checks: Compose has basic healthcheck. np has Nomad-native health checks with auto-restart.
  • Rolling updates: Compose doesn’t do rolling updates. np does.
  • Observability: Compose gives you docker logs. np gives you centralized logs + metrics.
  • Service discovery: Compose has internal DNS. np has Consul — services find each other across nodes.

When to use Docker Compose

  • You’re on a single machine
  • It’s for development, not production
  • You don’t need health checks, rolling updates, or multi-node

Summary

Scale Tool
1 machine Docker Compose Right tool
3-100 servers np Purpose-built
100+ servers Kubernetes Where complexity pays off

Next: Configuration reference →