Nomad: The 'not-so-obvious' choice for service orchestration
Rating: 10 out of 10
IncentivizedUse Cases and Deployment Scope
Nomad is the orchestration tool that will be handling the scheduling of all jobs for our upcoming platform. It will be the primary engine for ensuring service uptime and manage the deployment and lifecycle of services. It addresses the problem of service scheduling and implicitly and the problem of DevOps, as it simplifies our workflow, encouraging fast deployment.
Pros
- Nomad is incredibly simple by nature, following the Linux philosophy of doing one thing great. That one thing for Nomad is job scheduling.
- Nomad is a modern tool, written in Go with a large community and maintained by HashiCorp.
- Implementation of Nomad is very simple since it is a single binary.
Cons
- Nomad only handles one part of a full platform. Expertise and vision are required in implementing an entire system that is functional enough for an organization to rely on. This includes other tools to handle things like secrets, service discovery, network routing, etc.
- Nomad is delayed in some modern functionality, like features for service-mesh and open tracing. These features are on the tool's roadmap, but there's currently no native support. These paradigms can be established still, but require more expertise outside of Nomad itself.
- Nomad is not the leading tool for this space, and as such risks being left behind by tools with much greater support, such as Kubernetes.
Likelihood to Recommend
Nomad is well suited for organizations who wish to tackle the problem of cloud computing with as little opinion as possible. Where competing tools like Kubernetes limit the concept of "batteries included," Nomad relies on engineers understanding the missing components and filling them in as necessary. The benefit of Nomad is the ability to build a system out of small pieces with the cost of having more complexity at a system level compared to alternatives.