Introducing Apache Mesos

Click here to load reader

  • date post

    06-Apr-2017
  • Category

    Technology

  • view

    24
  • download

    0

Embed Size (px)

Transcript of Introducing Apache Mesos

  • BASLE BERN BRUGG DSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH

    Introducing Apache Mesos

    Matthias FurrerBruno Fuss

    A modern cluster manager optimizing resource utilization

  • Agenda

    TechEvent March 2017 - Introducing Apache Mesos2 03/2017

    1. IntroductionArchitecture (components)DistributionsOther Offerings

    2. FrameworksService Scheduling andManagement FrameworksBig Data Frameworks

    3. HA ComponentsZookeeperMarathon

    3. ConfigurationMesosMarathonKafka

    4. Live DemoMesosKafka

    5. SummaryUse Cases / Benefits

  • TechEvent March 2017 - Introducing Apache Mesos3 03/2017

    Introduction

  • Introducing Apache MesosA software layer to aggregate servers into one processing unit

    TechEvent March 2017 - Introducing Apache Mesos4 03/2017

    Distributed Cluster Management Software

    System Resources (Memory, Storage) abstraction from Hardware

    Metascheduler (scheduler of schedulers)

    Distributed Systems Kernel / Distributed Datacenter OS

    Supports Mesos and Docker Containers

    Open Source

    Runs under Apache License 2.0

    Cross Plattform

    Written in C++

    Runs on Linux/Posix systems, Experimental for Windows

  • Architecture - Features

    TechEvent March 2017 - Introducing Apache Mesos5 03/2017

    Scalability

    Scales up to over 50000 nodes

    Resource isolation

    Linux cgroups or Docker containers

    Efficiency

    Resource scheduling accross multiple frameworks/applications

    High availability

    Uses Apache Zookeeper (distributed configuration and synchronization service)

    Monitoring Interface

    Web UI

  • Components

    TechEvent March 2017 - Introducing Apache Mesos6 03/2017

    Master

    Mediating agent resources

    Agents

    Manage resources on individual nodes and executestasks

    Frameworks

    Applications

    Systems running on mesos consisting of a scheduler and an

    executor (e.g. Spark, Storm ,Cassandra)

    Chronos

    Fault tolerant job scheduler, can handle dependencies - acts

    as a cron for mesos

    Marathon

    Framework for running long-running services init.d for

    mesos

  • Architecture High Level Overview

    TechEvent March 2017 - Introducing Apache Mesos7 03/2017

    Zookeeper ensures high availability of masters

    Master daemon manages agent (slave) daemons

    Mesos frameworks run tasks on agents (slaves)

    Master decides how many resources to offer to each framework according to a given organizational policy (e.g fair sharing or strict priority).

    Framework running on top of Mesos consists of two components: a scheduler that registers with the master to be offered resources, and an executor process that is launched on agent nodes to run the frameworks taskSource: https://mesos.apache.org/documentation/latest/architecture

  • Architecture Resource Offering

    TechEvent March 2017 - Introducing Apache Mesos8 03/2017

    1. Agent 1 reports to the master that it has 4 CPUs and 4 GB of memory free. The master then invokes the allocation policy module

    2. The master sends a resource offer describing what is available on agent 1 to framework

    3. The frameworks scheduler replies to the master with information about two tasks to run on the agent

    4. Master sends the tasks to the agent, which allocates appropriate resources to the frameworks executor, which launches the two tasks. Because CPU/RAM Resources are still unallocated, the allocation module may now offer them to framework 2.

    Source: https://mesos.apache.org/documentation/latest/architecture

  • Distributions Mesosphere DC/OS

    TechEvent March 2017 - Introducing Apache Mesos9 03/2017

    Commercial version: Mesosphere Datacenter Operating System

    Open Source version: DC/OS available - derived from Mesospheres Datacenter Operating System

    Based on Mesos and Marathon

    Supports Docker as well as native Mesos containers

    Container orchestration capabilities for Docker and Mesos containers including automatic workload recovery, security, networking, service discovery

    Push-button installation of complex distributed systems (including HDFS, Apache Spark, Apache Kafka, Apache Cassandra and more) with DC/OS Universe

    Runs on bare-metal, virtual (vSphere or OpenStack) and cloud (AWS, Azure, GCE)

  • Other Offerings

    TechEvent March 2017 - Introducing Apache Mesos10 03/2017

    Kubernetes (Google / Cloud Native Computing Foundation CNCF)

    Docker Swarm (Docker, Inc.)

    Rkt fleet (CoreOS, Inc.)

    Shipyard (Shipyard Project)

    CloudSlang (Hewlett Packard Enterprise)

    Ranger (Ranger Labs)

    Azure Service Fabric (Microsoft)

  • TechEvent March 2017 - Introducing Apache Mesos11 03/2017

    Frameworks

  • Service Scheduling and Management Frameworks

    TechEvent March 2017 - Introducing Apache Mesos12 03/2017

    Marathon

    Launch and monitor long-running applications. Controlling a high availability environment, checking the applications' health and restarting services if nodes go down

    Chronos

    Distributed, fully fault-tolerant job scheduler. Can interact with systems (e.g. Hadoop) even if the Mesos worker machine does not have the system installed

    Apache Aurora

    Manages long-running services, cron jobs, and ad-hoc jobs

    Consul

    Service Discovery and orchestration

  • Big Data Frameworks

    TechEvent March 2017 - Introducing Apache Mesos13 03/2017

    Apache Hadoop

    Distributed Data Processing, MapReduce and Distributed File System (HDFS)

    Apache Spark

    Execution engine for large-scale data processing. Batch processing, iterative processing, near real-time processing, and stream processing. Caching data in memory with Resilient Distributed Datasets (RDD)

    Apache Storm

    Real-time distributed stream event-processing engine

    Apache Cassandra

    Open source scalable NoSQL database. Provides query language Cassandra Query Language or CQL to communicate with database

  • Big Data Frameworks (II)

    TechEvent March 2017 - Introducing Apache Mesos14 03/2017

    Apache Kafka

    distributed publish-subscribe messaging system designed for speed, scalability, reliability, and durability

    Apache Samza

    Distributed stream processing framework. Using Kafka for messaging and Hadoop YARN for resource management

    Elasticsearch-Logstash-Kibana (ELK) stack

    End-to-End log analytics solution: Elasticsearch for search capabilities, Logstashas a log management software and Kibana as the visualization layer

    Mesos API

    Develop custom frameworks schedulers and executors

  • TechEvent March 2017 - Introducing Apache Mesos15 03/2017

    High Availability

    Components

  • Apache Zookeeper

    TechEvent March 2017 - Introducing Apache Mesos16 03/2017

    ZooKeeper

    is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.

    Independent Apache Project

    Characteristics

    Central Key/Value Store

    Containing additional Information like time stamps, versioning,

    Simple

    Fast

    Designed for High Availability

  • Apache Zookeeper

    TechEvent March 2017 - Introducing Apache Mesos17 03/2017

    High Availability

    one Leader

    two or more Followers

    Quorum

    Follower

  • Apache Zookeeper

    TechEvent March 2017 - Introducing Apache Mesos18 03/2017

    Data Model

    Hierarchical Namespace

    Z-Nodes (Zookeeper Nodes)

    Nodes identified by Path

    Ex.: /app1/p_1

    Ephemeral Nodes

    Leader Election

    Conditional updates and watches

    Atomic Transactions

  • Apache Zookeeper on Mesos

    Zookeeper takes hand in everywhere Mesos needs to store and call up distributeddynamic information

    Service Locations

    Service States

    Client Notifications

    Leader election for Mesos Masters and Frameworks (e.g. Marathon, etc.)

    03/2017 TechEvent March 2017 - Introducing Apache Mesos19

  • Marathon

    Marathon is a Apache Mesos framework for container orchestration

    designed for long running and stateful Apps (e.g. Database, App. Server, etc.)

    Marathon is a meta framework

    used for managing other Mesos Frameworks (Chronos, Storm, )

    Container Support

    Mesos Containers (default)

    Docker Constainers (must be configured)

    03/2017 TechEvent March 2017 - Introducing Apache Mesos20

  • Marathon

    Features

    High Availability

    Constraints

    Service Discovery & Load Balancing (Mesos-DNS, Marathon-LB)

    Health Checking

    Event Subscription

    User Interfaces for managing services (start, stop, check, )

    Marathon UI (GUI)

    REST API

    Basic Security (Authorisation, SSL, )

    03/2017 TechEvent March 2017 - Introducing Apache Mesos21

  • Marathon Example

    Mesos Master and Agents (Slaves), Zookeeper and Marathon started by OS on each server (initd, systemd)

    Marathon starts frameworks on Mesos Agents (Chronos, JBoss, Jetty, Rails)

    Chronos, a fault tolerant job scheduler acts itself as frameworkand starts jobs (e.g. dumps a database, send Emails)

    03/2017 TechEvent March 2017 - Introducing Apache Mesos22

  • TechEvent March 2017 - Introducing Apache Mesos23 03/2017

    Installation & Configuration

  • Installing and Configuring Apache Mesos

    Installation