SlideShare a Scribd company logo
© 2018 HashiCorp
Nomad
Modern Scheduling for
Modern Applications
Jasmine Dahilig
80%+ companies are
deploying containers with
Multiple OSes across
Multiple Clouds
Majority of surveyed organizations are
deploying containers with both Linux and
Windows, across on-premises and multiple
clouds
40% of surveyed organizations cited
“complexity” as the number one challenge in
container deployment.
Management Complexity
is a top challenge in using
and deploying containers
https://www.cncf.io/blog/2018/08/29/cncf-survey-use-of-cloud-
native-technologies-in-production-has-grown-over-200-percent/
https://goto.docker.com/rs/929-FJL-178/images/IDC-
containerplatform-wp.pdf
A Common Cloud Operating Model
App
App
Run
Provision
Connect
Secure
Compliance&Governance
The Need for a Modern
Orchestrator
© 2018 HashiCorp
The Move to
Containers and
Clouds
5
● Adopt containers and
microservices for new applications
● Re-architect & migrate existing
applications
● Segment of legacy applications
remains the same
© 2018 HashiCorp
The Fundamental
Needs for a Container
Orchestrator
6
How do we run
containers in
production?
”
© 2018 HashiCorp
Challenges of Moving
to Containers
7
● Lack of budget or time to refactor
existing applications
● Increased complexity to support
mixed systems and workflows
● Limited time to meet IT/Business
requirements - Incremental vs
Overhaul
© 2018 HashiCorp
Guiding Principle
Orchestrate Any
Application
8
● Bringing modern orchestration benefits to
all - containerized, non-containerized and
batch applications
● A simple, lightweight layer that can be
integrated with any existing infrastructure
● A single, unified workflow to accelerate
incremental application modernization
© 2018 HashiCorp
NOMAD ECOSYSTEM
Single
Orchestrator
for Clouds
Using Nomad
Automated Deployment Workflow
Application Deployment as Code
● Declarative specification using
HCL (like Terraform) or JSON
● Set the deployment rules for
applications fast and intuitively.
Define tasks, images, resources,
priorities, constraints, service
registrations, secrets and other
information required to deploy the
application.
job “my_job" {
region = "us"
datacenters = ["us-west-1", "us-east-1"]
type = "service"
group "web" {
count = 5
task "frontend" {
driver = "docker"
config {
image = "hashicorp/web-frontend"
}
resources {
cpu = 500 # MHz
memory = 128 # MB
network {
mbits = 100
port "http" {}
port "https" {
static = 443
TERMINAL
Intuitive Deployment Rules
job “my_job" {
region = "us"
datacenters = ["us-west-1", "us-east-1"]
type = "service"
group "web" {
count = 5
task "frontend" {
driver = "docker"
config {
image = "hashicorp/web-frontend"
}
resources {
cpu = 500 # MHz
memory = 128 # MB
network {
mbits = 100
port "http" {}
port "https" {
static = 443
job
# define the deployment rules for applications
_ group
# defines a series of tasks that should be co-located on
the same Nomad client
_ task
# defines a command, service, application or
"set of work" to execute, such as a docker
container, webapp or batch processing. Tasks
are executed by their driver
job “my_job" {
region = "us"
datacenters = ["us-west-1", "us-e
type = "service"
group "web" {
count = 5
task "frontend" {
driver = "docker"
config {
image = "hashicorp/web-fron
}
resources {
cpu = 500 # MHz
memory = 128 # MB
network {
mbits = 100
port "http" {}
port "https" {
● Batch Scheduler is optimized for fast placement for short-lived workload.
Example: Daily reports, transactions, billing invoices
● Service Scheduler is optimized for long-running workloads.
Example: Business-critical applications, customer facing webapps,
database
● System Scheduler is optimized for background tasks
Example: Logging/monitoring, security, background processes
Schedulers to Run All Types of Workloads
Enable Flexibility with Extensible Drivers
job “my_job" {
region = "us"
datacenters = ["us-west-1", "us-east-1"]
type = "service"
group "web" {
count = 5
task "frontend" {
driver = "docker"
config {
image = "hashicorp/web-frontend"
}
resources {
cpu = 500 # MHz
memory = 128 # MB
network {
mbits = 100
port "http" {}
port "https" {
static = 443
● Task Drivers execute tasks on the Nomad Client and provide
resource isolation
● First-class support of a broad set of workloads across all
major operating systems
Robust Application Update Strategy
Automate job update and migration
to minimize down time
● Rolling Updates
● Blue/Green deployments
● Canaries deployments
● Updates can be gated on Consul
health checks and automatically
reverted
job “my_job” {
update {
max_parallel = 3
health_check = "checks"
min_healthy_time = "10s"
healthy_deadline = "10m"
auto_revert = true
canary = 1
stagger = "30s"
}
}
TERMINAL
Operating Nomad
Nomad Architecture - Single Process
Single Binary
(<35MB)
NOMAD
AGENT
NOMAD
SERVER
NOMAD
CLIENT
Nomad Server forms the control plane for
scheduling.
$ .nomad -config=server.hcl
Nomad Client runs on the node which
registers with the servers, watching for any work to
be assigned and execute tasks
$ .nomad -config=client.hcl
Nomad Architecture - Single Region
Nomad Demo
Scheduling in Nomad
Overall Scheduling Process
Define the
“Desired States”
of tasks by users,
bounded by hard
and soft
constraints
Triggered by any
change of Jobs or
Nodes when
Nomad needs to
re-evaluate the the
“state of world”
Nomad generates
a plan on how a
set of tasks in a
job should be run
on a particular
node
Nodes form a
resource pool
where the tasks
can be executed.
Nomad monitors
their health status
Nomad scheduler is responsible for processing an
evaluation and generating an allocation plan.
Improved Application Resiliency
Improved Resource Utilization
● Improve resource utilization by densely
scheduling applications over underutilized
resources
Native Integration with
Vault and Consul
Secrets Management with Vault
● Automatic Vault token retrieval
● Automatic Vault token renewal
● Automatic secret retrieval and
renewal via template stanza
Job file
job “my_job" {
group "example" {
task "server" {
vault {
policies = ["cdn", "frontend"]
change_mode = "signal"
change_signal = "SIGUSR1"
}
}
}
}
TERMINAL
retrieve
renew
Service Discovery with Consul
● Built-in service discovery,
registration, and health check
monitoring for all applications
deployed under Nomad
Service Mesh with Consul
● Network Namespaces to create
isolated network for a task group
● Native Consul Connect integration
to launch sidecar proxies for
applications
● Intentions*are defined in Consul
and transparent to job spec
authors as applications scale up
and down
*Note: Intentions define access control for services via
Consul Connect and are used to control which services
may establish connections.
Nomad Ecosystem
© 2018 HashiCorp
NOMAD ECOSYSTEM
Broad
Ecosystem
Integration
Monitoring
● The Nomad client and server
agents collect runtime telemetry.
● Operators can use this data to
gain real-time visibility into their
Nomad clusters and improve
performance.
● The metrics can be exported to
tools like Prometheus, Grafana,
Graphite, DataDog, and Circonus.
telemetry {
publish_allocation_metrics = true
publish_node_metrics = true
}
telemetry {
datadog_address = "dogstatsd.company.local:8125"
datadog_tags = ["my_tag_name:my_tag_value"]
}
Specialized Hardware with Device Plugins
Run any workload against any
hardware infrastructure with
extensible device plugins
● Nomad clients discover and
fingerprint the attributes of
available hardware resources in
addition to existing built-in
resources
● plugin also assists the Nomad
client in making the allocated
device available to run the task
type DevicePlugin interface {
Fingerprint(ctx context.Context) (<-chan *FingerprintResponse, error)
Reserve(deviceIDs []string) (*ContainerReservation, error)
Stats(ctx context.Context, interval time.Duration) (<-chan
*StatsResponse, error)
}
TERMINAL
What’s New with Nomad 0.11
Enhance Core Orchestration Capabilities
Container
Storage
Interface
Deploy stateful
applications with any
storage provider of choice
(EBS, EFS, etc.)
Task
Dependencies
Run interdependent
applications in their
sequential orders easily
and efficiently at scale
Autoscaling
Dynamically scale
application instances
based on real-time load
without manual
intervention
Nomad 0.11 Key Features | OSS
Remote Exec
(UI)
Directly execute
commands in running
allocations through the
Nomad UI for faster
operability
Audit Logging
Provides administrators with a
complete set of records for all user-
issued actions to fulfill compliance
requirements.
[Governance & Policies Module]
Nomad 0.11 Key Features | ENT
© 2018 HashiCorp
nomadproject.io
learn.hashicorp.com/nomad
github.com/hashicorp/nomad
www.hashicorp.com
hello@hashicorp.com
Thank you
HashiCorp VirtualDays:
Asia Pacific
Thank You!

More Related Content

What's hot (20)

PPTX
Infrastructure as Code Presentation v5.pptx
YASHSRIVASTAVA811639
 
PPTX
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Simplilearn
 
ODP
Distributed File System
Ntu
 
PPTX
AzureDevOps
Udaiappa Ramachandran
 
PDF
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
Edureka!
 
PDF
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
 
PPTX
Docker introduction
dotCloud
 
PPTX
Dockers and containers basics
Sourabh Saxena
 
PPTX
Types of cloud computing
KrishnaRamalingam2
 
PPTX
Importance & Principles of Modeling from UML Designing
ABHISHEK KUMAR
 
PPTX
Why Docker
dotCloud
 
PPT
Chord Algorithm
Sijia Lyu
 
PPTX
Docker introduction &amp; benefits
Amit Manwade
 
PPTX
Docker Networking Overview
Sreenivas Makam
 
PPTX
NIST Model of Cloud Computing by Piyush Bujade.pptx
theLegendPiyush
 
PPTX
Active directory architecture
rahuldaredia21
 
PDF
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
XpressEngine
 
PDF
Docker volume
MyoungSu Shin
 
PDF
Docker Introduction.pdf
OKLABS
 
PPTX
Red Team Apocalypse
Beau Bullock
 
Infrastructure as Code Presentation v5.pptx
YASHSRIVASTAVA811639
 
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Simplilearn
 
Distributed File System
Ntu
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
Edureka!
 
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
 
Docker introduction
dotCloud
 
Dockers and containers basics
Sourabh Saxena
 
Types of cloud computing
KrishnaRamalingam2
 
Importance & Principles of Modeling from UML Designing
ABHISHEK KUMAR
 
Why Docker
dotCloud
 
Chord Algorithm
Sijia Lyu
 
Docker introduction &amp; benefits
Amit Manwade
 
Docker Networking Overview
Sreenivas Makam
 
NIST Model of Cloud Computing by Piyush Bujade.pptx
theLegendPiyush
 
Active directory architecture
rahuldaredia21
 
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
XpressEngine
 
Docker volume
MyoungSu Shin
 
Docker Introduction.pdf
OKLABS
 
Red Team Apocalypse
Beau Bullock
 

Similar to Modern Scheduling for Modern Applications with Nomad (20)

PPTX
Nomad by HashiCorp Presentation (DevOps)
Knoldus Inc.
 
PPTX
Nomad by HashiCorp Presentation (DevOps)
Knoldus Inc.
 
PDF
Easy Cloud Native Transformation with Nomad
Bram Vogelaar
 
PDF
Hashicorp Nomad
Ivan Glushkov
 
PDF
Altitude SF 2017: Nomad and next-gen application architectures
Fastly
 
PDF
Nomad Multi-Cloud
Nic Jackson
 
PDF
Living the Nomadic life - Nic Jackson
Paris Container Day
 
PPTX
Unlocking the Cloud Operating Model: Deployment
Mitchell Pronschinske
 
PPTX
Easy and Flexible Application Deployment with HashiCorp Nomad
Amanda MacLeod
 
PDF
Multi-Cloud with Nomad and Consul Connect
Mitchell Pronschinske
 
PDF
London HUG 8/3 - Nomad
London HashiCorp User Group
 
PDF
Atmosphere 2016 - Diptanu Choudhury - Taming the public clouds with nomad
PROIDEA
 
PDF
London HUG 14/4 - Deploying and Discovering at Scale with Consul and Nomad
London HashiCorp User Group
 
PDF
San Francisco HashiCorp User Group at GitHub
Jon Benson
 
PDF
SF HashiCorp User Group at GitHub
Jon Benson
 
PDF
Migratory Workloads Across Clouds with Nomad
Philip Watts
 
PDF
20220608 - Luxembourg HUG Meetup
Stéphane Este-Gracias
 
PDF
Migratory Workloads Across Clouds with Nomad
REAN Cloud
 
PDF
Extending HashiCorp Nomad with Plugins
Mitchell Pronschinske
 
PDF
Nomad, l'orchestration made in Hashicorp - Bastien Cadiot
Paris Container Day
 
Nomad by HashiCorp Presentation (DevOps)
Knoldus Inc.
 
Nomad by HashiCorp Presentation (DevOps)
Knoldus Inc.
 
Easy Cloud Native Transformation with Nomad
Bram Vogelaar
 
Hashicorp Nomad
Ivan Glushkov
 
Altitude SF 2017: Nomad and next-gen application architectures
Fastly
 
Nomad Multi-Cloud
Nic Jackson
 
Living the Nomadic life - Nic Jackson
Paris Container Day
 
Unlocking the Cloud Operating Model: Deployment
Mitchell Pronschinske
 
Easy and Flexible Application Deployment with HashiCorp Nomad
Amanda MacLeod
 
Multi-Cloud with Nomad and Consul Connect
Mitchell Pronschinske
 
London HUG 8/3 - Nomad
London HashiCorp User Group
 
Atmosphere 2016 - Diptanu Choudhury - Taming the public clouds with nomad
PROIDEA
 
London HUG 14/4 - Deploying and Discovering at Scale with Consul and Nomad
London HashiCorp User Group
 
San Francisco HashiCorp User Group at GitHub
Jon Benson
 
SF HashiCorp User Group at GitHub
Jon Benson
 
Migratory Workloads Across Clouds with Nomad
Philip Watts
 
20220608 - Luxembourg HUG Meetup
Stéphane Este-Gracias
 
Migratory Workloads Across Clouds with Nomad
REAN Cloud
 
Extending HashiCorp Nomad with Plugins
Mitchell Pronschinske
 
Nomad, l'orchestration made in Hashicorp - Bastien Cadiot
Paris Container Day
 
Ad

More from Mitchell Pronschinske (20)

PDF
Getting Started with Kubernetes and Consul
Mitchell Pronschinske
 
PDF
Code quality for Terraform
Mitchell Pronschinske
 
PDF
Dynamic Azure Credentials for Applications and CI/CD Pipelines
Mitchell Pronschinske
 
PPTX
Migrating from VMs to Kubernetes using HashiCorp Consul Service on Azure
Mitchell Pronschinske
 
PPTX
Empowering developers and operators through Gitlab and HashiCorp
Mitchell Pronschinske
 
PPTX
Automate and simplify multi cloud complexity with f5 and hashi corp
Mitchell Pronschinske
 
PDF
Vault 1.5 Overview
Mitchell Pronschinske
 
PPTX
Using new sentinel features in terraform cloud
Mitchell Pronschinske
 
PDF
Military Edge Computing with Vault and Consul
Mitchell Pronschinske
 
PDF
Unlocking the Cloud operating model with GitHub Actions
Mitchell Pronschinske
 
PDF
Vault 1.4 integrated storage overview
Mitchell Pronschinske
 
PDF
Unlocking the Cloud Operating Model
Mitchell Pronschinske
 
PPTX
Cisco ACI with HashiCorp Terraform (APAC)
Mitchell Pronschinske
 
PPTX
Governance for Multiple Teams Sharing a Nomad Cluster
Mitchell Pronschinske
 
PDF
Integrating Terraform and Consul
Mitchell Pronschinske
 
PPTX
Keeping a Secret with HashiCorp Vault
Mitchell Pronschinske
 
PPTX
Moving to a Microservice World: Leveraging Consul on Azure
Mitchell Pronschinske
 
PPTX
Remote Culture at HashiCorp
Mitchell Pronschinske
 
PPTX
Rapid Infrastructure in Hybrid Environments
Mitchell Pronschinske
 
PDF
Vault 1.4 launch webinar
Mitchell Pronschinske
 
Getting Started with Kubernetes and Consul
Mitchell Pronschinske
 
Code quality for Terraform
Mitchell Pronschinske
 
Dynamic Azure Credentials for Applications and CI/CD Pipelines
Mitchell Pronschinske
 
Migrating from VMs to Kubernetes using HashiCorp Consul Service on Azure
Mitchell Pronschinske
 
Empowering developers and operators through Gitlab and HashiCorp
Mitchell Pronschinske
 
Automate and simplify multi cloud complexity with f5 and hashi corp
Mitchell Pronschinske
 
Vault 1.5 Overview
Mitchell Pronschinske
 
Using new sentinel features in terraform cloud
Mitchell Pronschinske
 
Military Edge Computing with Vault and Consul
Mitchell Pronschinske
 
Unlocking the Cloud operating model with GitHub Actions
Mitchell Pronschinske
 
Vault 1.4 integrated storage overview
Mitchell Pronschinske
 
Unlocking the Cloud Operating Model
Mitchell Pronschinske
 
Cisco ACI with HashiCorp Terraform (APAC)
Mitchell Pronschinske
 
Governance for Multiple Teams Sharing a Nomad Cluster
Mitchell Pronschinske
 
Integrating Terraform and Consul
Mitchell Pronschinske
 
Keeping a Secret with HashiCorp Vault
Mitchell Pronschinske
 
Moving to a Microservice World: Leveraging Consul on Azure
Mitchell Pronschinske
 
Remote Culture at HashiCorp
Mitchell Pronschinske
 
Rapid Infrastructure in Hybrid Environments
Mitchell Pronschinske
 
Vault 1.4 launch webinar
Mitchell Pronschinske
 
Ad

Recently uploaded (20)

PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PDF
UITP Summit Meep Pitch may 2025 MaaS Rebooted
campoamor1
 
PPTX
iaas vs paas vs saas :choosing your cloud strategy
CloudlayaTechnology
 
PPTX
Smart Doctor Appointment Booking option in odoo.pptx
AxisTechnolabs
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PPTX
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
ERP Consulting Services and Solutions by Contetra Pvt Ltd
jayjani123
 
PDF
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
PPTX
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PDF
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
UITP Summit Meep Pitch may 2025 MaaS Rebooted
campoamor1
 
iaas vs paas vs saas :choosing your cloud strategy
CloudlayaTechnology
 
Smart Doctor Appointment Booking option in odoo.pptx
AxisTechnolabs
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
ERP Consulting Services and Solutions by Contetra Pvt Ltd
jayjani123
 
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 

Modern Scheduling for Modern Applications with Nomad

  • 1. © 2018 HashiCorp Nomad Modern Scheduling for Modern Applications Jasmine Dahilig
  • 2. 80%+ companies are deploying containers with Multiple OSes across Multiple Clouds Majority of surveyed organizations are deploying containers with both Linux and Windows, across on-premises and multiple clouds 40% of surveyed organizations cited “complexity” as the number one challenge in container deployment. Management Complexity is a top challenge in using and deploying containers https://www.cncf.io/blog/2018/08/29/cncf-survey-use-of-cloud- native-technologies-in-production-has-grown-over-200-percent/ https://goto.docker.com/rs/929-FJL-178/images/IDC- containerplatform-wp.pdf
  • 3. A Common Cloud Operating Model App App Run Provision Connect Secure Compliance&Governance
  • 4. The Need for a Modern Orchestrator
  • 5. © 2018 HashiCorp The Move to Containers and Clouds 5 ● Adopt containers and microservices for new applications ● Re-architect & migrate existing applications ● Segment of legacy applications remains the same
  • 6. © 2018 HashiCorp The Fundamental Needs for a Container Orchestrator 6 How do we run containers in production? ”
  • 7. © 2018 HashiCorp Challenges of Moving to Containers 7 ● Lack of budget or time to refactor existing applications ● Increased complexity to support mixed systems and workflows ● Limited time to meet IT/Business requirements - Incremental vs Overhaul
  • 8. © 2018 HashiCorp Guiding Principle Orchestrate Any Application 8 ● Bringing modern orchestration benefits to all - containerized, non-containerized and batch applications ● A simple, lightweight layer that can be integrated with any existing infrastructure ● A single, unified workflow to accelerate incremental application modernization
  • 9. © 2018 HashiCorp NOMAD ECOSYSTEM Single Orchestrator for Clouds
  • 12. Application Deployment as Code ● Declarative specification using HCL (like Terraform) or JSON ● Set the deployment rules for applications fast and intuitively. Define tasks, images, resources, priorities, constraints, service registrations, secrets and other information required to deploy the application. job “my_job" { region = "us" datacenters = ["us-west-1", "us-east-1"] type = "service" group "web" { count = 5 task "frontend" { driver = "docker" config { image = "hashicorp/web-frontend" } resources { cpu = 500 # MHz memory = 128 # MB network { mbits = 100 port "http" {} port "https" { static = 443 TERMINAL
  • 13. Intuitive Deployment Rules job “my_job" { region = "us" datacenters = ["us-west-1", "us-east-1"] type = "service" group "web" { count = 5 task "frontend" { driver = "docker" config { image = "hashicorp/web-frontend" } resources { cpu = 500 # MHz memory = 128 # MB network { mbits = 100 port "http" {} port "https" { static = 443 job # define the deployment rules for applications _ group # defines a series of tasks that should be co-located on the same Nomad client _ task # defines a command, service, application or "set of work" to execute, such as a docker container, webapp or batch processing. Tasks are executed by their driver
  • 14. job “my_job" { region = "us" datacenters = ["us-west-1", "us-e type = "service" group "web" { count = 5 task "frontend" { driver = "docker" config { image = "hashicorp/web-fron } resources { cpu = 500 # MHz memory = 128 # MB network { mbits = 100 port "http" {} port "https" { ● Batch Scheduler is optimized for fast placement for short-lived workload. Example: Daily reports, transactions, billing invoices ● Service Scheduler is optimized for long-running workloads. Example: Business-critical applications, customer facing webapps, database ● System Scheduler is optimized for background tasks Example: Logging/monitoring, security, background processes Schedulers to Run All Types of Workloads
  • 15. Enable Flexibility with Extensible Drivers job “my_job" { region = "us" datacenters = ["us-west-1", "us-east-1"] type = "service" group "web" { count = 5 task "frontend" { driver = "docker" config { image = "hashicorp/web-frontend" } resources { cpu = 500 # MHz memory = 128 # MB network { mbits = 100 port "http" {} port "https" { static = 443 ● Task Drivers execute tasks on the Nomad Client and provide resource isolation ● First-class support of a broad set of workloads across all major operating systems
  • 16. Robust Application Update Strategy Automate job update and migration to minimize down time ● Rolling Updates ● Blue/Green deployments ● Canaries deployments ● Updates can be gated on Consul health checks and automatically reverted job “my_job” { update { max_parallel = 3 health_check = "checks" min_healthy_time = "10s" healthy_deadline = "10m" auto_revert = true canary = 1 stagger = "30s" } } TERMINAL
  • 18. Nomad Architecture - Single Process Single Binary (<35MB) NOMAD AGENT NOMAD SERVER NOMAD CLIENT Nomad Server forms the control plane for scheduling. $ .nomad -config=server.hcl Nomad Client runs on the node which registers with the servers, watching for any work to be assigned and execute tasks $ .nomad -config=client.hcl
  • 19. Nomad Architecture - Single Region
  • 22. Overall Scheduling Process Define the “Desired States” of tasks by users, bounded by hard and soft constraints Triggered by any change of Jobs or Nodes when Nomad needs to re-evaluate the the “state of world” Nomad generates a plan on how a set of tasks in a job should be run on a particular node Nodes form a resource pool where the tasks can be executed. Nomad monitors their health status Nomad scheduler is responsible for processing an evaluation and generating an allocation plan.
  • 24. Improved Resource Utilization ● Improve resource utilization by densely scheduling applications over underutilized resources
  • 26. Secrets Management with Vault ● Automatic Vault token retrieval ● Automatic Vault token renewal ● Automatic secret retrieval and renewal via template stanza Job file job “my_job" { group "example" { task "server" { vault { policies = ["cdn", "frontend"] change_mode = "signal" change_signal = "SIGUSR1" } } } } TERMINAL retrieve renew
  • 27. Service Discovery with Consul ● Built-in service discovery, registration, and health check monitoring for all applications deployed under Nomad
  • 28. Service Mesh with Consul ● Network Namespaces to create isolated network for a task group ● Native Consul Connect integration to launch sidecar proxies for applications ● Intentions*are defined in Consul and transparent to job spec authors as applications scale up and down *Note: Intentions define access control for services via Consul Connect and are used to control which services may establish connections.
  • 30. © 2018 HashiCorp NOMAD ECOSYSTEM Broad Ecosystem Integration
  • 31. Monitoring ● The Nomad client and server agents collect runtime telemetry. ● Operators can use this data to gain real-time visibility into their Nomad clusters and improve performance. ● The metrics can be exported to tools like Prometheus, Grafana, Graphite, DataDog, and Circonus. telemetry { publish_allocation_metrics = true publish_node_metrics = true } telemetry { datadog_address = "dogstatsd.company.local:8125" datadog_tags = ["my_tag_name:my_tag_value"] }
  • 32. Specialized Hardware with Device Plugins Run any workload against any hardware infrastructure with extensible device plugins ● Nomad clients discover and fingerprint the attributes of available hardware resources in addition to existing built-in resources ● plugin also assists the Nomad client in making the allocated device available to run the task type DevicePlugin interface { Fingerprint(ctx context.Context) (<-chan *FingerprintResponse, error) Reserve(deviceIDs []string) (*ContainerReservation, error) Stats(ctx context.Context, interval time.Duration) (<-chan *StatsResponse, error) } TERMINAL
  • 33. What’s New with Nomad 0.11 Enhance Core Orchestration Capabilities
  • 34. Container Storage Interface Deploy stateful applications with any storage provider of choice (EBS, EFS, etc.) Task Dependencies Run interdependent applications in their sequential orders easily and efficiently at scale Autoscaling Dynamically scale application instances based on real-time load without manual intervention Nomad 0.11 Key Features | OSS Remote Exec (UI) Directly execute commands in running allocations through the Nomad UI for faster operability
  • 35. Audit Logging Provides administrators with a complete set of records for all user- issued actions to fulfill compliance requirements. [Governance & Policies Module] Nomad 0.11 Key Features | ENT