Recs.
Updated
Specs
Pros
Pro Not just Docker
Nomad schedules many different types of tasks via Drivers, including: docker containers, forking processes, running jar files, rkt and VMs via QEMU. See more here https://www.nomadproject.io/docs/drivers/index.html
Pro Scales batch workloads with queuing too.
Nomad has the concept of both a long running service and a batch job. When you submit a batch job that contains tasks, if you don't have immediate capacity in your cluster, tasks will queue up in nomad. As capacity frees up, nomad schedules the work. This is great if your workloads are heterogeneous in terms cpu, memory and how long they take to run. You don't have to scale up and down, unless you want faster throughput. If the throughput isn't as important, you can let things run as soon as a resource opens up.
Pro Complex applications can easily be expressed through Nomad
Nomad uses a high-level abstraction of jobs. Jobs are essentially task groups (sets of tasks). Because of this, Nomad allows users to develop and manage complex applications easily, without having to think about the individual containers that make these applications.
Pro Simple Setup
Servers and clients both leverage a pre-compiled binary. You execute this binary and point it at a config file. That's it for deployment. Also, the github repo for the project includes sample service config files https://github.com/hashicorp/nomad/tree/master/dist
Cons
Con Not a complete tool
While other orchestration tools provide much more than just cluster management and scheduling (they also provide things like secrets management, discovery, monitoring, etc.), Nomad follows the Unix philosophy of doing only one thing and doing it well, providing only cluster management and scheduling.