Wednesday, January 9, 2019

NOMAD : An Introduction

What is Nomad?

Nomad is a flexible container orchestration tool that enables an organization to easily deploy and manage any containerized or legacy application using a single, unified workflow. Nomad can run a diverse workload of Docker, non-containerized, microservice, and batch applications, and generally offers the following benefits to developers and operators:
  • API-driven Automation: Workload placement, scaling, and upgrades can be automated, simplifying operations and eliminating the need for homegrown tooling.
  • Self-service Deployments: Developers are empowered to service application lifecycles directly, allowing operators to focus on higher value tasks.
  • Workload Reliability: Application, node, and driver failures are handled automatically, reducing the need for manual operator intervention
  • Increased Efficiency and Reduced Cost: Higher application densities allow operators to reduce fleet sizes and save money.
Nomad is trusted by enterprises from a range of sectors including financial, retail, software, and others to run production workloads at scale across private infrastructure and the public cloud.

»How it Works

At its core, Nomad is a tool for managing a cluster of machines and running applications on them. Nomad abstracts away machines and the location of applications, and instead enables users to declare what they want to run while Nomad handles where and how to run them.
The key features of Nomad are:
  • Docker Support: Nomad supports Docker as a first-class workload type. Jobs submitted to Nomad can use the docker driver to easily deploy containerized applications to a cluster. Nomad enforces the user-specified constraints, ensuring the application only runs in the correct region, datacenter, and host environment. Jobs can specify the number of instances needed and Nomad will handle placement and recover from failures automatically.
  • Operationally Simple: Nomad ships as a single binary, both for clients and servers, and requires no external services for coordination or storage. Nomad combines features of both resource managers and schedulers into a single system. Nomad builds on the strength of Serf and Consul, distributed management tools by HashiCorp.
  • Multi-Datacenter and Multi-Region Aware: Nomad models infrastructure as groups of datacenters which form a larger region. Scheduling operates at the region level allowing for cross-datacenter scheduling. Multiple regions federate together allowing jobs to be registered globally.
  • Flexible Workloads: Nomad has extensible support for task drivers, allowing it to run containerized, virtualized, and standalone applications. Users can easily start Docker containers, VMs, or application runtimes like Java. Nomad supports Linux, Windows, BSD and OSX, providing the flexibility to run any workload.
  • Built for Scale: Nomad was designed from the ground up to support global scale infrastructure. Nomad is distributed and highly available, using both leader election and state replication to provide availability in the face of failures. Nomad is optimistically concurrent, enabling all servers to participate in scheduling decisions which increases the total throughput and reduces latency to support demanding workloads. Nomad has been proven to scale to cluster sizes that exceed 10k nodes in real-world production environments.

Nomad vs. Other Software

The following characteristics generally differentiate Nomad from related products:
  • Simplicity: Nomad runs as a single process with zero external dependencies. Operators can easily provision, manage, and scale Nomad. Developers can easily define and run applications.
  • Flexibility: Nomad can run a diverse workload of containerized, legacy, microservice, and batch applications. Nomad can schedule service, batch processing and system jobs, and can run on both Linux and Windows.
  • Scalability and High Performance: Nomad can schedule thousands of containers per second, scale to thousands of nodes in a single cluster, and easily federate across regions and cloud providers.
  • HashiCorp Interoperability: Nomad elegantly integrates with Vault for secrets management and Consul for service discovery and dynamic configuration. Nomad's Consul-like architecture and Terraform-like job specification lower the barrier to entry for existing users of the HashiCorp stack.
There are many relevant categories for comparison including cluster managers, resource managers, workload managers, and schedulers. There are many existing tools in each category, and the comparisons are not exhaustive of the entire space.

Reference:
https://www.nomadproject.io/intro/vs/index.html
https://www.nomadproject.io/intro/index.html

No comments:

Post a Comment