This page features Nomad's core use cases.
Note that the full range of potential use cases is broader than what is covered here.
Organizations are increasingly moving towards a Docker centric workflow for application deployment and management. This transition requires new tooling to automate placement, perform job updates, enable self-service for developers, and to handle failures automatically. Nomad supports a first-class Docker workflow and integrates seamlessly with Consul and Vault to enable a complete solution while maximizing operational flexibility. Nomad is easy to use, can scale to thousands of nodes in a single cluster, and can easily deploy across private data centers and multiple clouds.
A virtual machine based application deployment strategy can lead to low hardware utlization rates and high infrastructure costs. While a Docker-based deployment strategy can be impractical for some organizations or use cases, the potential for greater automation, increased resilience, and reduced cost is very attractive. Nomad natively supports running legacy applications, static binaries, JARs, and simple OS commands directly. Workloads are natively isolated at runtime and bin packed to maximize efficiency and utilization (reducing cost). Developers and operators benefit from API-driven automation and enhanced reliability for applications through automatic failure handling.
Microservices and Service Oriented Architectures (SOA) are a design paradigm in which many services with narrow scope, tight state encapsulation, and API driven communication interact together to form a larger solution. However, managing hundreds or thousands of services instead of a few large applications creates an operational challenge. Nomad elegantly integrates with Consul for automatic service registration and dynamic rendering of configuration files. Nomad and Consul together provide an ideal solution for managing microservices, making it easier to adopt the paradigm.
As data science and analytics teams grow in size and complexity, they increasingly benefit from highly performant and scalable tools that can run batch workloads with minimal operational overhead. Nomad can natively run batch jobs, parameterized jobs, and Spark workloads. Nomad's architecture enables easy scalability and an optimistically concurrent scheduling strategy that can yield thousands of container deployments per second. Alternatives are overly complex and limited in terms of their scheduling throughput, scalability, and multi-cloud capabilities.
Nomad is designed to natively handle multi-datacenter and multi-region deployments and is cloud agnostic. This allows Nomad to schedule in private datacenters running bare metal, OpenStack, or VMware alongside an AWS, Azure, or GCE cloud deployment. This makes it easier to migrate workloads incrementally and to utilize the cloud for bursting.