Armon HASHICORP

Similar documents
Armon HASHICORP

Scheduling Applications at Scale

This tutorial will give you a quick start with Consul and make you comfortable with its various components.

Deploying Applications on DC/OS

Big Data Security. Facing the challenge

Windows Azure Services - At Different Levels

Shen PingCAP 2017

@joerg_schad Nightmares of a Container Orchestration System

Redesigning Apache Flink s Distributed Architecture. Till

GoDocker. A batch scheduling system with Docker containers

Enabling Cloud Adoption. Addressing the challenges of multi-cloud

Microsoft Recertification for MCSE: Server Infrastructure. Download Full Version :

Beyond 1001 Dedicated Data Service Instances

Distributed Systems 16. Distributed File Systems II

Tuning Enterprise Information Catalog Performance

TEN LAYERS OF CONTAINER SECURITY

Getting Started With Amazon EC2 Container Service

How do we build TiDB. a Distributed, Consistent, Scalable, SQL Database

SCYLLA: NoSQL at Ludicrous Speed. 主讲人 :ScyllaDB 软件工程师贺俊

Apache HBase Andrew Purtell Committer, Apache HBase, Apache Software Foundation Big Data US Research And Development, Intel

Course Overview This five-day course will provide participants with the key knowledge required to deploy and configure Microsoft Azure Stack.

Secrets in the Cloud JAX Dominik Schadow

Building/Running Distributed Systems with Apache Mesos

Service Mesh and Microservices Networking


Open Cloud Reference Architecture

Cloud Computing /AWS Course Content

SAINT LOUIS JAVA USER GROUP MAY 2014

BraindumpsQA. IT Exam Study materials / Braindumps

EASILY DEPLOY AND SCALE KUBERNETES WITH RANCHER

Zero to Microservices in 5 minutes using Docker Containers. Mathew Lodge Weaveworks

Microsoft Azure Stack Hybrid Cloud. The Modern System Architecture

利用 Mesos 打造高延展性 Container 環境. Frank, Microsoft MTC

Jupyter and Spark on Mesos: Best Practices. June 21 st, 2017

OpenShift 3 Technical Architecture. Clayton Coleman, Dan McPherson Lead Engineers

Dyadic Enterprise. Unbound Key Control For Azure Marketplace. The Secure-As-Hardware Software With a Mathematical Proof

70-532: Developing Microsoft Azure Solutions

How we build TiDB. Max Liu PingCAP Amsterdam, Netherlands October 5, 2016

Deploying and Using ArcGIS Enterprise in the Cloud. Bill Major

Microservices. Chaos Kontrolle mit Kubernetes. Robert Kubis - Developer Advocate,

70-532: Developing Microsoft Azure Solutions

Cloud Native Applications. 主讲人 :Capital One 首席工程师 Kevin Hoffman

Oracle Big Data. A NA LYT ICS A ND MA NAG E MENT.


Sentinet for Windows Azure VERSION 2.2

SAP VORA 1.4 on AWS - MARKETPLACE EDITION FREQUENTLY ASKED QUESTIONS

Microsoft Architecting Microsoft Azure Solutions.

Distributed PostgreSQL with YugaByte DB

Document Sub Title. Yotpo. Technical Overview 07/18/ Yotpo

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

The Emergence of the Datacenter Developer. Tobi Knaup, Co-Founder & CTO at

Architecting Microsoft Azure Solutions (proposed exam 535)

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Logging on to the Hadoop Cluster Nodes. To login to the Hadoop cluster in ROGER, a user needs to login to ROGER first, for example:

Using DC/OS for Continuous Delivery

Spark Overview. Professor Sasu Tarkoma.

Write On Aws. Aws Tools For Windows Powershell User Guide using the aws tools for windows powershell (p. 19) this section includes information about

20532D - Version: 1. Developing Microsoft Azure Solutions

Alteryx Technical Overview

Scale your Docker containers with Mesos

IBM Compose Managed Platform for Multiple Open Source Databases

THE CEPH POWER SHOW. Episode 2 : The Jewel Story. Daniel Messer Technical Marketing Red Hat Storage. Karan Singh Sr. Storage Architect Red Hat Storage

Module: Cloud Computing Security

Developing Microsoft Azure Solutions (70-532) Syllabus

#techsummitch

Cloud & container monitoring , Lars Michelsen Check_MK Conference #4

Embedded Technosolutions

Distributed File Systems II

SAP Vora - AWS Marketplace Production Edition Reference Guide

Oracle Cloud Metric Reference for Oracle Infrastructure Monitoring

Big Data com Hadoop. VIII Sessão - SQL Bahia. Impala, Hive e Spark. Diógenes Pires 03/03/2018

Xen and CloudStack. Ewan Mellor. Director, Engineering, Open-source Cloud Platforms Citrix Systems

INSTALLATION RUNBOOK FOR Iron.io + IronWorker

Developing Microsoft Azure Solutions (70-532) Syllabus

Apache Ignite TM - In- Memory Data Fabric Fast Data Meets Open Source

Next-Generation Cloud Platform

Big Data for Engineers Spring Resource Management

Nevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation

Big Data 7. Resource Management

Isolation Forest for Anomaly Detection

Processing of big data with Apache Spark

VMWARE PIVOTAL CONTAINER SERVICE

Securing Microservices Containerized Security in AWS

SYSTEM REQUIREMENTS M.APP ENTERPRISE

Developing Microsoft Azure Solutions (70-532) Syllabus

Azure Development Course

Developing Microsoft Azure Solutions

Upcoming Services in OpenStack Rohit Agarwalla, Technical DEVNET-1102

Building a Data-Friendly Platform for a Data- Driven Future

Build an open hybrid cloud and paint it red and blue

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0

Accelerate MySQL for Demanding OLAP and OLTP Use Case with Apache Ignite December 7, 2016

Managing and Auditing Organizational Migration to the Cloud TELASA SECURITY

MapR Enterprise Hadoop

OpenNebula on VMware: Cloud Reference Architecture

YOUR APPLICATION S JOURNEY TO THE CLOUD. What s the best way to get cloud native capabilities for your existing applications?

The Evolution of Big Data Platforms and Data Science

Big Data Programming: an Introduction. Spring 2015, X. Zhang Fordham Univ.

Mesosphere and Percona Server for MongoDB. Jeff Sandstrom, Product Manager (Percona) Ravi Yadav, Tech. Partnerships Lead (Mesosphere)

Mesosphere and Percona Server for MongoDB. Peter Schwaller, Senior Director Server Eng. (Percona) Taco Scargo, Senior Solution Engineer (Mesosphere)

Transcription:

Nomad

Armon Dadgar @armon

Cluster Manager Scheduler Nomad

Cluster Manager Scheduler Nomad

Schedulers map a set of work to a set of resources

Work (Input) Resources Web Server -Thread 1 Web Server -Thread 2 Redis -Thread 1 CPU Scheduler CPU - Core 1 CPU - Core 2 Kernel -Thread 1 CPU Scheduler

Work (Input) Resources Web Server -Thread 1 Web Server -Thread 2 Redis -Thread 1 CPU Scheduler CPU - Core 1 CPU - Core 2 Kernel -Thread 1 CPU Scheduler

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 Schedulers In the Wild

Higher Resource Utilization Decouple Work from Resources Better Quality of Service Advantages

Higher Resource Utilization Bin Packing Decouple Work from Resources Over-Subscription Better Quality of Service Job Queueing Advantages

Higher Resource Utilization Abstraction Decouple Work from Resources API Contracts Better Quality of Service Standardization Advantages

Higher Resource Utilization Priorities Decouple Work from Resources Resource Isolation Better Quality of Service Pre-emption Advantages

Nomad

Cluster Scheduler Easily Deploy Applications Operationally Simple Built for Scale Nomad

example.nomad job "redis" { datacenters = ["us-east-1"] task "redis" { driver = "docker" config { image = "redis:latest" } resources { cpu = 500 # Mhz memory = 256 # MB } } } network { mbits = 10 dynamic_ports = ["redis"] }

Declares what to run Job Specification

Nomad determines where and manages how to run Job Specification

Nomad abstracts work from resources Job Specification

Docker Containerized Rkt Windows Server Containers Qemu / KVM Virtualized Xen Hyper-V Java Jar Standalone Static Binaries C#

Declarative Job Specification Infrastructure-As-Code Removes Imperative Logic External Dependencies? Nomad

Service Discovery? Health Monitoring? Application Secrets? Stateful Applications? Nomad

job my-app" { task my-app" { service { port = http check { type = http path = /health interval = 5s } } } } example.nomad

Client Nomad Server Schedule App Nomad App 1 Consul Register Service Monitor Health Consul Server App N

Secret Distribution: API Keys DB Credentials SSL/TLS Certificates Nomad

job my-app" { task my-app" { env { DB_USERPASS = foo:bar } } } example.nomad

Secure secret storage Dynamic secrets Leasing, renewal, and revocation Auditing Rich ACLs Vault Multiple client authentication methods

Login Vault Token Vault Token + Operation Op Response

example.nomad job my-app" { task my-app" { env { VAULT_TOKEN = b6a10b96-9060-11e6-9c6f-67a52bc6b8d3 } } }

job my-app" { task my-app" { vault { policies = [ my-app-role ] } } } example.nomad

Submit Job + Vault Token Nomad Server Verify Vault Token Schedule App Client Nomad Generate + Renew Vault Token App 1 App N

Native Vault Integration No Secrets in Jobs No Secrets on Client Disk Minimize Trust Nomad

Stateless Stateful Stateful Applications

Stateless Stateful API Web Cache Stateful Applications

Stateless Stateful API Web Cache HDFS Cassandra MongoDB Stateful Applications

Stateless Stateful API Web Cache HDFS Cassandra MongoDB *SQL Stateful Applications

EASY MEDIUM HARD Stateless Stateful API Web Cache HDFS Cassandra MongoDB *SQL Stateful Applications

job my-app" { task my-app" { ephemeral_disk { sticky = true } } } example.nomad

Moves data between tasks on the same machine

Copies data between tasks on different machines

Easily Deploy Apps: Declarative Jobs Flexible Workloads Consul Integration Vault Integration Nomad Sticky Volumes

Operationally Simple

Client Server

Built on Experience GOSSIP CONSENSUS

Cluster Management Gossip Based (P2P) Membership Failure Detection Serf Event System

Large Scale Production Hardened Simple Clustering and Federation Serf

Service Discovery Configuration Coordination (Locking) Central Servers + Distributed Clients Consul

Multi-Datacenter Raft Consensus Large Scale Production Hardened Consul

Operational Simplicity: Single Binary No Dependencies Highly Available Nomad

Built for Scale

Built on Experience Mature Libraries Proven Design Patterns GOSSIP CONSENSUS Lacking Scheduling Logic

Built on Research GOSSIP CONSENSUS

CLIENT CLIENT CLIENT DC1 DC2 DC3 RPC RPC RPC SERVER REPLICATION SERVER REPLICATION SERVER FORWARDING FORWARDING FOLLOWER LEADER FOLLOWER Single Region Architecture

REGION A SERVER SERVER SERVER REPLICATION REPLICATION FOLLOWER LEADER FORWARDING FOLLOWER REGION B GOSSIP REGION FORWARDING SERVER FOLLOWER REPLICATION SERVER LEADER REPLICATION FORWARDING SERVER FOLLOWER Multi Region Architecture

Region is Isolation Domain 1-N Datacenters Per Region Flexibility to do 1:1 (Consul) Scheduling Boundary Nomad

Hundreds of regions Tens of thousands of clients per region Thousands of jobs per region

Inspired by Google Omega Optimistic Concurrency State Coordination Service & Batch workloads Nomad Pluggable Architecture

Data Model NODE EVALUATION ALLOCATION JOB

Evaluation ~= State Change

Evaluations Create / Update / Delete Job Node Up / Node Down Allocation Failed / Finished

Evaluations SCHEDULER func(evaluation) => []AllocationUpdates

Evaluations SCHEDULER func(evaluation) => []AllocationUpdates Service, Batch, System

External Event EvaluaBon CreaBon EvaluaBon Queuing EvaluaBon Processing OpBmisBc CoordinaBon State Updates

Omega Architecture Optimistically Schedule 100 s of Jobs in Parallel Controls for Correctness Nomad

Nomad Million Container Challenge 1,000 Jobs 1,000 Tasks per Job 5,000 Hosts on GCE 1,000,000 Containers

640 KB ought to be enough for anybody. Bill Gates

2nd Largest Hedge Fund 18K Cores 5 Hours 2,200 Containers/second

Cluster Scheduler Easily Deploy Applications Operationally Simple Built for Scale Nomad

Thanks! Q/A