Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors

download Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors

of 66

  • date post

    16-Apr-2017
  • Category

    Software

  • view

    182
  • download

    1

Embed Size (px)

Transcript of Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors

  • Characterizing andContrasting Kuhn-tey-ner

    Awr-kuh-streyt-ors

    http://calcotestudios.com/alldaydevops2016

    All Day DevOps, November 2016

    Lee Calcote

    http://calcotestudios.com/ato2016

  • Lee Calcote

    linkedin.com/in/leecalcote

    @lcalcote

    blog.gingergeek.com

    lee@calcotestudios.com

    clouds, containers, infrastructure,applications and their management

    http://linkedin.com/in/leecalcotehttp://calcotestudios.com/http://twitter.com/lcalcotehttp://blog.gingergeek.com/mailto:lee@calcotestudios.comhttp://www.meetup.com/Microservices-and-Containers-Austin/https://www.packtpub.com/virtualization-and-cloud/developer-defined-infrastructure-using-tectonic-and-kuberneteshttp://twitter.com/lcalcotehttp://calcotestudios.com/talks/slides-alldaydevops-characterizing-and-contrasting-kuhn-tey-ner-awr-kuh-streyt-ors.html?print-pdf=truehttp://calcotestudios.com/talks/slides-alldaydevops-characterizing-and-contrasting-kuhn-tey-ner-awr-kuh-streyt-ors.html?print-pdf=truehttp://calcotestudios.com/talks/slides-alldaydevops-characterizing-and-contrasting-kuhn-tey-ner-awr-kuh-streyt-ors.html?print-pdf=true

  • [kuhn-tey-ner][awr-kuh-streyt-or]

    Definition:

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • FleetNomadSwarm

    Kubernetes Mesos+Marathon

    CaaS

    @lcalcote(Stay tuned for updates to presentation and book)

    Joyent TritonDocker Datacenter

    AWS ECSAzure Container Service

    Rackspace Carina

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Onesize does notfitall.

    A strict apples-to-apples comparison is inappropriate and notthe objective, hencecharacterizingandcontrasting.

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Let's not go here today.

    Container orchestrators may be intermixed.

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Categorically Speaking

    Scheduling

    Genesis & PurposeSupport & MomentumHost & Service Discovery

    Modularity & ExtensibilityUpdates & MaintenanceHealth MonitoringNetworking & Load-BalancingSecrets ManagementHigh Availability & Scale

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Hypervisor Manager Elements

    ComputeNetworkStorage

    Container Orchestrator

    ElementsCluster

    Host (Node)Task

    JobPod

    ContainerApplication

    ServiceVirtual IP

    Secret / ConfigVolume

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • CoreCapabilities

    Cluster Management

    Host Discovery

    Host Health Monitoring

    Scheduling

    Orchestrator Updates and Host

    Maintenance

    Service Discovery

    Networking and Load-Balancing

    Multi-tenant, multi-region

    AdditionalKey CapabilitiesApplication Health Monitoring

    Application Deployments

    Application Performance Monitoring

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Nomad

  • Genesis & Purposedesigned for both long-lived services and short-livedbatch processing workloads. cluster manager with declarative job specifications. ensures constraints are satisfied and resourceutilization is optimized by efficient task packing. supports all major operating systems and virtualized,containerized or standalone workloads. written in Go and with a Unix philosophy.

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Support & MomentumProject began June 2015 has 113 contributors over 16months

    Current release v0.4v0.5 to be released any day nowNomad Enterprise offering aimed for Q1-Q2 next year.

    Supported and governed by HashiCorpHashiconf US '15 had ~300 attendeesHashiconf EU '16 had ~320 attendeesHashiConf US '16 had ~ 500 attendees

    @lcalcoteNomad is a single binary, both for clients

    and servers, and requires no externalservices for coordination or storage.

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Nomad Architecture

    services for coordination or storage.

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Host & Service Discovery

    Host Discovery

    Gossip protocol - Serf is usedDocker multi-host networking and Swarmkit use Serf, too

    Servers advertise full set of Nomad servers to clientsheartbeats every 30 seconds

    Creating federated clusters is simple

    Service Discovery

    Nomad integrates with to provide servicediscovery and monitoring.

    Consul

    @lcalcote

    https://www.consul.io/http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Scheduling

    two distinct phases, feasibility checking and ranking. optimistically concurrent

    enabling all servers to participate in scheduling decisionswhich increases the total throughput and reduces latency

    three scheduler types used when creating jobs:service, batch and system

    nomad plan point-in-time-view of what Nomad will do

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Modularity & ExtensibilityTask drivers

    Used by Nomad clients to execute a task and provideresource isolation. By having extensible task drivers are important forflexibility to support a broad set of workloads. Does not currently support pluggable task drivers,

    Have to iImplement task driver interface and compileNomad binary.

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Updates &Maintenance

    Nodes

    Drain allocations on a running node.integrates with tools like Packer, Consul, and Terraform tosupport building artifacts, service discovery, monitoring andcapacity management.

    Applications

    Log rotation (stderr and stdout)

    no log forwardsupport, yet

    Rolling updates (via the `update` block in the job specification).

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Health MonitoringNodes

    Node health monitoring is done via heartbeats, soNomad can detect failed nodes and migrate theallocations to other healthy clients.

    Applications

    currently http, tcp and script

    In the future Nomad will add support for more Consulchecks.

    nomad alloc-status reports actual resource utilization

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Networking&Load-Balancing

    Networking

    Dynamic ports are allocated in a range from 20000 to 60000.Shared IP address with Node

    Load-Balancing

    Consul provides DNS-based load-balancing

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Secrets Management

    Nomad agents provide secure integration with Vaultfor all tasks and containers it spins up

    gives secure access to Vault secrets through aworkflow which minimizes risk of secret exposureduring bootstrapping.

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • High Availability & Scale

    distributed and highly available, using both leaderelection and state replication to provide availability inthe face of failures. shared state optimistic scheduler

    only open source implementation.

    1,000,0000 across 5,000 hosts and scheduled in 5 min.

    Built for managing multiple clusters / cluster federation.

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • easier to usea single binary for both clients andserverssupports different non-containerizedtasksarguably the most advanced schedulerdesignupfront consideration of federation /hybrid cloudbroad OS support

    Outside of scheduler, comparatively lesssophisticated

    Young project

    Less relative momentum

    Less relative adoption

    Less extensible / pluggable

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Docker Swarm

  • Docker Swarm 1.12aka

    Swarmkit or Swarm mode

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Genesis & PurposeSwarm is simple and easy to setup. Responsible for the clustering and scheduling aspectsof orchestration. Originally an imperative system, now declarative Swarms architecture is not complex as those ofKubernetes and Mesos Written in Go, Swarm is lightweight, modular andextensible

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Docker Swarm 1.11 (Standalone)

    Docker Swarm Mode 1.12 (Swarmkit)

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Support & Momentum

    Contributions:Standalone: ~3,000 commits, 12 core maintainers (140 contributors)

    Swarmkit: ~2,000 commits, 12 core maintainers (40 contributors)

    ~250 Docker meetups worldwide Production-ready:

    Standalone announced ~12 months ago (Nov 2015)

    Swarmkit announced ~3 month ago (July 2016)

    @lcalcote

    http://twitter.com/lcalcotehttp://twitter.com/lcalcote

  • Host & Service DiscoveryHost Discovery

    used in the formation of clusters by the Manager to discover forNodes (hosts).

    Like Nomad, uses Hashicorp's go for storing cluster state

    Pull model - where worker checks-in with the Manager

    Rate Control - of checks-in with Manager may be controlled atManager - add jitter

    Workers don't need to know which Manager is active; FollowerManagers will redirect Workers to Leader

    Service DiscoveryEmbedded DNS and round robin load-balancing

    Services are a new concept

    MemDB

    @lcalcote

    ht