Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Taming the public and private clouds with Nomad

Diptanu Choudhury
April 11, 2016
180

Taming the public and private clouds with Nomad

Diptanu Choudhury

April 11, 2016
Tweet

Transcript

  1. HASHICORP Taming the modern public and private clouds with Nomad

    Diptanu Gon Choudhury @diptanu PhillyETE 2016
  2. HASHICORP Evolution of compute infrastructure Global Public Cloud AWS -

    US-West-2 AWS - US-East-1 GCP - US-Central-1 Private Clouds Private Clouds
  3. HASHICORP Challenges of the modern cloud 10s of 1000s of

    compute nodes to manage Compute clusters are spread across the globe Static and offline partitioning of clusters are no longer efficient
  4. HASHICORP Challenges of the modern cloud Heterogenous API for accessing

    compute infrastructure Heterogenous primitives for managing network, secrets, etc
  5. HASHICORP Evolution of application architecture SOA and Micro Services are

    replacing monoliths Distributed Systems are the new normal
  6. HASHICORP Cluster Schedulers to the rescue Decouple Work from Resources

    Better Quality of Service Higher Resource Utilization
  7. HASHICORP Nomad as Cluster Scheduler Bin Packing Job Queueing Over-Subscription

    Higher Resource Utilization Decouple Work from Resources Better Quality of Service
  8. HASHICORP Nomad as the Cluster Scheduler Abstraction API Contracts Standardization

    Higher Resource Utilization Decouple Work from Resources Better Quality of Service
  9. HASHICORP Nomad as the Cluster Scheduler Priorities Resource Isolation Pre-emption

    Higher Resource Utilization Decouple Work from Resources Better Quality of Service
  10. HASHICORP example.nomad # Define our simple redis job job "redis"

    { # Run only in us-east-1 datacenters = ["us-east-1"] # Define the single redis task using Docker task "redis" { driver = "docker" config { image = "redis:latest" } resources { cpu = 500 # Mhz memory = 256 # MB network { mbits = 10 dynamic_ports = ["redis"] } } } }
  11. HASHICORP Supports multiple Clouds, DCs and Regions Resources across DCs

    are presented as single pool Developers can target multiple datacenter in the same job file Unified interface for developers across clouds
  12. HASHICORP Single Region Architecture SERVER SERVER SERVER CLIENT CLIENT CLIENT

    DC1 DC2 DC3 FOLLOWER LEADER FOLLOWER REPLICATION FORWARDING REPLICATION FORWARDING RPC RPC RPC
  13. HASHICORP 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
  14. Nomad HASHICORP Region is Isolation Domain 1-N Datacenters Per Region

    Flexibility to do 1:1 (Consul) Scheduling Boundary
  15. HASHICORP Scheduler Architecture Concurrent and optimistic scheduling Event Driven invocation

    of schedulers No head of line blocking for different type of workloads
  16. HASHICORP Maintainance Primitives First class support for doing maintenance on

    nodes Drain allocations running on a node nomad node-drain -enable 149cc920 Are you sure you want to enable drain mode for node "149cc920"? [y/N]
  17. HASHICORP example.nomad job "redis" { task "redis" { ……… service

    { name = “binstore” tags = [“env:staging”, “stack:beta”] port = “http” check { name = “binstore-http” type = “http” path = “/status” interval = “30s” timeout = “2s” } } ………… } }
  18. HASHICORP System Job Scheduler Runs a job on every node

    on the cluster Great for running monitoring, logging, auditing software