Why Nomad is the #1 Orchestration Tool for DevOps
Author: John Jarvis
Release Date: 04/11/2022
Nomad is a simple and flexible orchestrator used to deploy and manage containers and non-containerised applications, working across on-premises and cloud environments. Organisations tend to choose it over Kubernetes for: 1) its simplicity in usage and maintainability; and 2) its flexibility in deploying and managing containerised and non-containerised applications.
Operating as a single lightweight binary, Nomad excels on-premises and at the edge, providing the same ease-of-use as it does in the cloud. Its architectural simplicity, native federation capabilities, and operator-friendly design enable companies to scale and manage an orchestrator with little operational overhead. HashiCorp’s customer interviews show that no matter the company’s size, teams and organisations gain benefits from its simplicity and flexibility, including:
- Fast time to production: Average 1-3 weeks to get Nomad from a technical proof of concept into production
- Rapid adoption: From 2 hours to less than 30 minutes to onboard a developer to directly deploy applications on Nomad
- Great operational efficiency: Allows operation teams to stay lean (1-4 people) to service hundreds of developers and applications, and achieve high uptime with a self-hosted orchestrator
- Smooth path to migration: Allows teams to incrementally migrate or containerize existing applications at their own pace with a single, unified deployment workflow
David and Goliath
Medium to large scale enterprises run into challenges when trying to standardise hundreds to thousands of software developers and administrators onto one single orchestrator (e.g., Kubernetes, Nomad, Mesos) as no scheduler today fits all applications, environments, projects, and teams. Companies in the Global 2000 today such as Intel, Autodesk and Github with multiple products and business units organically run Nomad and Kubernetes to supplement each other.
Native Service Discovery
It’s hardly surprising that Nomad integrates well with HashiCorp Consul for service discovery. And now, with the release of version 1.3, Nomad also offers service discovery natively, allowing Nomad tasks to easily make requests of other tasks. Nomad-Consul integrations will continue to improve, of course; this native service discovery is targeted at users who have simple routing needs or architectures that prohibit the use of Consul, such as geographically distributed edge workloads.
Working, at the (leading) edge
Edge computing is an increasingly adopted topology and location-sensitive form of distributed computinag, where computing, networking and storage move closer to the source of data generation or end users. While the list of use cases and industries continues to grow, there are common expected outcomes such as reduced latency, improved end-user experience, and cost savings.
Once applications and services are running at the edge, however, many are left struggling to maintain and operate the volume of endpoints. Edge environments often involve resource-constrained devices, intermittent connectivity, and a diverse pool of infrastructure and applications that need to be managed remotely. Whether they are running on bare metal, VMs, containers, or even Raspberry Pis, applications at the edge rely on comprehensive lifecycle management with robust security practices, high fault tolerance, and the ability to scale according to workload.
The distributed single cluster topology
Complexity consistently ranks as one of the top challenges of container management. For Kubernetes users, moving to the edge often increases operational overhead because most edge use cases will require a multi-cluster architecture. Managing clusters individually is difficult to maintain as your environments scale, so many have users adopted community projects like Kubefed or created their own abstraction layer to centrally manage them. Both options require a significant investment of time and resources to implement.
If you decide that a multi-cluster deployment makes the most sense for your use case, you can reduce some of the operational overhead with Nomad by connecting multiple clusters via multi-region federation (using but one command!). This allows you to connect to one region (with Nomad, a region is the equivalent of a Kubernetes cluster), forward commands, and share ACLs with other regions.
Heterogeneous environments
Edge environments are often heterogeneous and can consist of various processors, operating systems, network topologies, device types, and workflows. Nomad’s flexible workload support allows users to support a variety of applications to meet any existing configuration, which is critical for edge devices that might be ARM-based or running on Windows. Pluggable task drivers provide a degree of separation of Nomad client CPU, memory, and storage between tasks and allow air-gapped environments where devices can’t share or centralise their data. Even in those situations, you are able to manage various devices in a single cluster and operate with a unified workflow. By having extensible task drivers, Nomad can manage a broad set of workloads across all major operating systems. Nomad’s support for device plugins allows it to take advantage of hardware running on specialised devices which is especially useful for IoT, smart transport, or in-store technology.
There are an increasing number of use cases across industries for distributing location-sensitive applications outside of centralised data centres and running them closer to where they are needed. Managing these applications across a fleet of distributed, heterogeneous, and dynamic edge devices and infrastructure can be challenging. With Nomad, you can build a single, consolidated workflow that gives you the flexibility and control necessary to fit the unique requirements of each application at the edge.
References:
- https://www.nomadproject.io/docs/nomad-vs-kubernetes/alternative
- https://www.nomadproject.io/docs/nomad-vs-kubernetes/supplement
- https://www.hashicorp.com/blog/managing-applications-at-the-edge-with-hashicorp-nomad
- https://www.hashicorp.com/blog/nomad-1-3-adds-native-service-discovery-and-edge-workload-support