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:

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.

image-20201019235928035

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.

image-20201020131628900

  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: