When it comes to choosing a tool for container orchestration, Kubernetes seems to be the most popular option. However, there are alternatives like HashiCorp Nomad which may offer a better fit for your needs. This is what you need to know about this container orchestration tool.
What is HashiCorp Nomad?
HashiCorp describes Nomad as a ‘flexible scheduler and workload orchestrator.’ Offering exceptional scalability, the tool is designed to allow developers to build a single, unified workflow to deploy applications into production. Notably, Nomad can be used for both containerized and legacy applications. The scheduler decides where it is most efficient to run the application in a pool of compute, storage, and networking, and then performs the deployment automatically.
Running on Linux, Windows Server or MacOS, developers can deploy their applications using declarative infrastructure-as-code. The tool takes care of optimization too, using bin packing for efficient resource utilisation and job scheduling. In this regard Nomad performs a single task – to simplify and accelerate application deployment so that businesses can achieve their continuous development goals. And by automating the process, Nomad can deploy new applications faster and in greater quantities than traditional manual deployment processes.
How widely adopted is HashiCorp Nomad?
First released in 2015, Nomad has attracted attention from some very large internet companies. The ability to deploy into extremely large, complex application environments has seen brands like Roblox, Trivago, Cloudflare, SAP and eBay adopt the tool. It is a robust and promising alternative to other container management tools like Kubernetes. The ability to manage containerized and legacy applications using a single tool is particularly attractive to developers.
How does HashiCorp Nomad work?
Nomad uses a client-server model for application deployment. Nomad servers accept jobs from users and compute task placements automatically for optimal efficiency. Clients are the machines which actually run the tasks – they are managed by the defined servers.
As a truly global-ready platform, Nomad clients can be located anywhere across regions and data centres. However, it only takes a relatively small number of Nomad servers to manage very large clusters, with thousands of clients running potentially millions of tasks.
HashiCorp Nomad exists as a single binary, containing server, client and the CLI client used to control both. This single binary approach ensures that installation is quick and future upgrades are painless.
What are the top 5 benefits of HashiCorp Nomad?
We briefly discussed the benefits of HashiCorp Nomad at the beginning of this post, but now we’ll take a closer look at the top benefits, aside from general benefits such as convenience and frugality, in greater detail. The top five benefits of Nomad are:
- Scalability
- Simplicity
- Wider range of workloads
- Legacy app support
- Native support for GPU workloads
1. Scalability
Nomad can support clusters with more than 10,000 nodes. During a demonstration in 2020, HashiCorp was able to schedule 2,000,000 Docker containers on 6,100 hosts in 10 AWS regions in 22 minutes using just three schedulers. More than a little impressive when you consider that the operating ceiling for Kubernetes is 5,000 nodes and 300,000 containers.
2. Simplicity
Nomad offers scheduler server and client functionality in a single binary. It does not require any additional services for coordination or storage, so you have a simple, lightweight scheduler that is extremely simple to set up in a complex, distributed operating environment. And advanced automation ensures future application deployments are just as easy – even in multi-region, multi-federated environments.
3. Wider range of workloads
Nomad is a general-purpose scheduler, making it suitable for use with a broad range of workloads. In addition to Linux/Docker containers, Nomad can also support virtualized, containerized and standalone applications. This includes IIS on Windows, Qemu, Java and more.
4. Legacy app support
While Kubernetes is focused entirely on Linux containers, Nomad is far more flexible. By natively isolating and bin packing workloads at run time, even legacy applications can be optimised for pay-as-you-use cloud platforms.
5. Native support for GPU workloads
Using device plugins, Nomad can automatically detect and utilise resources from server components including GPU, FPGAs, and TPUs. This gives Nomad built-in support for GPU-intensive applications like Artificial Intelligence (AI) and Machine Learning (ML) workloads.
Take part in the Devoteam Community
This article is a part of a greater series centred around the technologies and themes found within the first edition of the Devoteam TechRadar. To see what our community of tech leaders said about the current position of HashiCorp Nomad in the market, take a look at the most recent edition of the Devoteam TechRadar.