Schedulers map a set of
work to a set of resources
Slide 8
Slide 8 text
CPU Scheduler
Web Server -Thread 1
CPU - Core 1
CPU - Core 2
Web Server -Thread 2
Redis -Thread 1
Kernel -Thread 1
Work (Input) Resources
CPU
Scheduler
Slide 9
Slide 9 text
CPU Scheduler
Web Server -Thread 1
CPU - Core 1
CPU - Core 2
Web Server -Thread 2
Redis -Thread 1
Kernel -Thread 1
Work (Input) Resources
CPU
Scheduler
Slide 10
Slide 10 text
Schedulers in the Wild
Type Work Resources
CPU Scheduler Threads Physical Cores
AWS EC2 /
OpenStack Nova
Virtual Machines Hypervisors
Hadoop YARN MapReduce Jobs Client Nodes
Cluster Scheduler Applications Servers
Slide 11
Slide 11 text
User Nomad
Servers
Nomad
Clients
Slide 12
Slide 12 text
User Nomad
Servers
Submits
Job
Nomad
Clients
Slide 13
Slide 13 text
User Nomad
Servers
Submits
Job
Nomad
Clients
Deploy App
OS Workloads Drivers
Windows Long Running Service Docker / Rkt / LXC
Linux Short Lived Batch Qemu / KVM
BSD Periodic Cron
“exec”
cgroups+chroot
Solaris System Agents
Static Binaries /
Fat JARs
Slide 28
Slide 28 text
Nomad
Declarative Jobs
Infrastructure as Code
Consul Integration
Vault Integration
Composable vs Platform
Slide 29
Slide 29 text
Empowers developers by
de-coupling operators
Slide 30
Slide 30 text
Operationally Simple
&
Scalable
Slide 31
Slide 31 text
Nomad
Single Binary
No Dependencies
Highly Available
Multi-DC/Region Support
Slide 32
Slide 32 text
Built on Research & Experience
GOSSIP CONSENSUS
Mature Libraries Proven Design Patterns
Slide 33
Slide 33 text
Nomad
Inspired by Google Omega
Optimistic Concurrency
Service & Batch workloads
Pluggable Architecture
Slide 34
Slide 34 text
Single Region Architecture
SERVER SERVER SERVER
CLIENT CLIENT CLIENT
DC1 DC2 DC3
FOLLOWER LEADER FOLLOWER
REPLICATION
FORWARDING
REPLICATION
FORWARDING
RPC RPC RPC
Slide 35
Slide 35 text
Multi Region Architecture
SERVER SERVER SERVER
FOLLOWER LEADER FOLLOWER
REPLICATION
FORWARDING
REPLICATION
REGION B
GOSSIP
REPLICATION REPLICATION
FORWARDING
REGION FORWARDING
REGION A
SERVER
FOLLOWER
SERVER SERVER
LEADER FOLLOWER
Slide 36
Slide 36 text
100’s of Regions
10,000’s of Clients per Region
1000’s of Jobs per Region
Slide 37
Slide 37 text
Nomad
Million Container
Challenge
1,000 Jobs
1,000 Tasks per Job
5,000 Hosts on GCE
1,000,000 Containers
Slide 38
Slide 38 text
No content
Slide 39
Slide 39 text
“640 KB ought to be enough for anybody.”
- Bill Gates
Slide 40
Slide 40 text
2nd Largest Hedge Fund
18K Cores
5 Hours
2,200 Containers/second
Slide 41
Slide 41 text
Nomad
Cluster Scheduler
Easily Deploy Applications
Operationally Simple
Built for Scale
Service Updates
• Changing a Service Job from Version A to Version B
• Upgrading WebApp from 1.1.0 to 1.2.0
• Controlled by update block
• Supports many different approaches
• Rolling Deploys, Canaries, Blue/Green
Dynamic Environment Variables
• The template block renders dynamic configuration
• Integrates with Consul for app configuration
• Integrates with Vault for secrets (DB credentials, TLS, etc)
• New env parameter sets environment variables