nomad & waypoint
This is just me trying out Nomad and Waypoint. This post was originally wrote in 2020.
nomad
Nomad acts as an online server/system to manage applications on that infra. (Alternative: k8s-terraform) Also, according to the intro talk, it's a really good platform for serverless compute.
What nomad does better than kubernetes:
- true serverless: maximizes utilization, minimizes resources needed
- can use windows/legacy systems, nomad isn't limited to kubernetes
- light: single binary
We can run a simple local server/client with nomad agent -dev -config config.hcl.
Clients are basically worker nodes, and servers makes sure there's high availability (everything is running across regions); our servers and clients create a cluster of virtual machines that have instances of consul and nomad, etc. We can port-forward (tunnel-through-iap) virtual machine ports to local ports (similar to kubectl port-forward).
I'm connected to my nomad cluster locally and I can just schedule a docker image simply with nomad comands: run/plan/stop, etc. It's like kubectl apply -f but with a .nomad file.

I scheduled a hello-world image. I see that it's running in hashistack-client-1. I see that consul automatically picked this guy up in services; the service mesh is all mapped out, etc.
Kubernetes is probably still better in most cases. In terms of other alternatives, there's also rancher, docker swarm, mesos , etc.
waypoint
Hashicorp also announced waypoint; it’s a tool to build and deploy.

deploy {
use "exec" {
command = ["kubectl", "apply", "-f", "<TPL>"]
template {
path = "./example-nodejs-exec.yml"
}
}
}
It’s like a makefile that also connects to k8s, AWS, GCP, and also nomad.
Other things:
- people need to use google cloud shell or other cloud terminal equivalents more when writing tutorials like they do here
- api if you just want nomad to be some compute
- Nomad Links: Good list of tooling, example with binary instead of docker, a nice templating walkthrough, a library of reference nomad files