mesos by zigi

34

Upload: -

Post on 14-Apr-2017

136 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Mesos by zigi

1KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Page 2: Mesos by zigi

2KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Introduce

Mesos

Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.

Mesos is built using the same principles as the Linux kernel, only at a different level of abstraction. The Mesos kernel runs on every machine and provides applications with API’s for resource management and scheduling across entire datacenter and cloud environments.

Page 3: Mesos by zigi

3KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

소개

메소스

Mesos는 Machine(혹은 Node)의 자원(CPU, Memory, Storage 등) 을 공유해서 사용.

일종의 데이터센터 자원의 커널

Cloud Infrastructure 및 Computing Engine들의 자원을 통합적 으로 관리 할 수 있도록만든 자원관리 프로젝트.

Page 4: Mesos by zigi

4KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

• UC Berkeley에서 Nexus 라는 이름으로 개발이 진행되던 프로젝트.

• Mesos라는 이름으로 Apache 재단에 오픈소스로 발표.

• Mesos를 활용 기업

MesosHistory &Reference

Page 5: Mesos by zigi

5KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

• Scalability to 10,000s of nodes

• Fault-tolerant replicated master and slaves using ZooKeeper

• Support for Docker containers

• Native isolation between tasks with Linux Containers

• Multi-resource scheduling (memory, CPU, disk, and ports)

• Java, Python and C++ APIs for developing new parallel applications

• Web UI for viewing cluster state

MesosFeatures

Page 6: Mesos by zigi

6KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

• 인프라에 대한 Utility를 향상 시켜, 비용 감소

• 개발자 관점에서 리소스에 대한 View를 단순화 함.

• 다양한 워크로드를 수행할 수 있는 프레임워크를 지원

• 특정 OS 혹은 벤더에 Lock-In되지 않기 때문에 H/W나 OS 선택의 폭이 넓음.

MesosWhy?

Page 7: Mesos by zigi

7KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Architecture : Master

Mesos

◦ Slave 리소스와 Framework 간의 중재 역할

◦ 안정성을 위해서 다수의 Master를 운영 가능

- Active 상태의 Master는 1대만 존재

- Master Active 선출/관리는 ZooKeeper 사용

- Active 이외의 Master는 Standby 상태 유지

◦ Master는 Framework가 Slave Resource를

사용할 수 있도록 제공.

Page 8: Mesos by zigi

8KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Architecture : Slave

Mesos

◦ Mesos 클러스터의 실제 작업(Task)을 수행

◦ 개별 노드에 대한 자원 관리 및 비즈니스 우선

순위를 반영하기 위한 자원 정책 구성.

Page 9: Mesos by zigi

9KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Architecture : Frameworks

Mesos

◦ 각 프레임워크는 스케줄러와 Executor로 구성.

◦ scheduler

- Master에 등록된 리소스를 사용하도록 등록.

◦ executor

- 슬레이브 노드에서 프레임워크 Task를

실행하기 위한 프로세스

Page 10: Mesos by zigi

10KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Architecture

Mesos

Page 11: Mesos by zigi

11KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

• Aurora is a service scheduler that runs on top of Mesos, enabling you to run long-running services that take advantage of Mesos' scalability, fault-tolerance, and resource isolation.

• Marathon is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is “always on”.

• Singularity is a scheduler (HTTP API and web interface) for running Mesos tasks: long running processes, one-off tasks, and scheduled jobs.

• SSSP is a simple web application that provides a white-label “Megaupload” for storing and sharing files in S3.

MesosFramework : Long Running Services

Page 12: Mesos by zigi

12KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

• Cray Chapel is a productive parallel programming language. The Chapel Mesos scheduler lets you run Chapel programs on Mesos.

• Dpark is a Python clone of Spark, a MapReduce-like framework written in Python, running on Mesos.

• Exelixi is a distributed framework for running genetic algorithms at scale.

• Hadoop Running Hadoop on Mesos distributes MapReduce jobs efficiently across an entire cluster.

• Hama is a distributed computing framework based on Bulk Synchronous Parallel computing techniques for massive scientific computations e.g., matrix, graph and network algorithms.

• MPI is a message-passing system designed to function on a wide variety of parallel computers.

• Spark is a fast and general-purpose cluster computing system which makes parallel jobs easy to write.

• Storm is a distributed realtime computation system. Storm makes it easy to reliably process unbounded streams of data, doing for realtime processing what Hadoop did for batch processing.

MesosFramework : Big Data Processing

Page 13: Mesos by zigi

13KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

• Chronos is a distributed job scheduler that supports complex job topologies. It can be used as a more fault-tolerant replacement for Cron.

• Jenkins is a continuous integration server. The mesos-jenkins plugin allows it to dynamically launch workers on a Mesos cluster depending on the workload.

• JobServer is a distributed job scheduler and processor which allows developers to build custom batch processing Tasklets using point and click web UI.

MesosFramework : Batch Scheduling

Page 14: Mesos by zigi

14KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

• Cassandra is a performant and highly available distributed database. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data.

• ElasticSearch is a distributed search engine. Mesos makes it easy to run and scale.

• Hypertable is a high performance, scalable, distributed storage and processing system for structured and unstructured data.

MesosFramework : Data Storage

Page 15: Mesos by zigi

15KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

High availability

Mesos

Mesos is configured for high availability, the leading master will abort itself when it discovers it has been partitioned away from the Zookeeper quorum. This is a safety precaution to ensure the previous leader doesn’t continue communicating in an unsafe state.

Page 16: Mesos by zigi

16KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

• Master Quorum이 2N-1 일 때, N개 이상의 Master가 동작 중이어야 함.

• Master Quorum의 수량은 3 혹은 5개를 권고

MesosMaster Quorum

Master Quorum Size Failure Tolerance

1 1 0

3 2 1

5 3 2

… … …

2N-1 N N-1

Page 17: Mesos by zigi

17KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Mesos 동작방식

Page 18: Mesos by zigi

18KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Flow

Mesos

Step 1. Slave 자신의 자원을 Master 서버에게 알림.

Slave Master

Resource register

Page 19: Mesos by zigi

19KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Flow

Mesos

Step 2. Master 서버는 Slave 자원 정보를 Framework에 알림.

Master Framework

Resource Inform

Page 20: Mesos by zigi

20KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Flow

Mesos

Step 3. Framework에 Job 1을 수행토록 지시.

Admin Framework

Task (Job)

Page 21: Mesos by zigi

21KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Flow

Mesos

Step 4. Master 서버는 Job 1을 Slave 서버에 전송.

MasterFramework Slave

Page 22: Mesos by zigi

22KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Flow

Mesos

Step 5. Slave 서버는 해당 작업을 수행

Running

Slave

Page 23: Mesos by zigi

23KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Example of resource offer

Mesos

Page 24: Mesos by zigi

24KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Datacenter OS

Page 25: Mesos by zigi

25KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Datacenter operating system - DCOS

The DCOS runs in any modern Linux environment: public and private cloud, virtual machines and bare metal.

Built in to the DCOS, Mesos pools your infrastructure, automatically allocating resources and scheduling tasks based on demands and policy.

Control your entire DCOS-powered datacenter from a single command line and a single web user interface.

Run all your apps and workloads, from PaaS-based microservices to big data to databases — and everything in between.

Page 26: Mesos by zigi

26KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

DATACENTER OPERATING SYSTEM - DCOS

Page 27: Mesos by zigi

27KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Mesos 미리보기

Page 28: Mesos by zigi

28KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Dashboard

Mesos

Page 29: Mesos by zigi

29KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Dashboard : Frameworks

Mesos

Page 30: Mesos by zigi

30KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Dashboard : Slaves

Mesos

Page 31: Mesos by zigi

31KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Dashboard : Application

Marathon

Page 32: Mesos by zigi

32KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Dashboard : Application Detail

Marathon

Page 33: Mesos by zigi

33KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

Etc.

Mesos

Pushing control to the frameworks has two benefits. First, it allows frameworks to implement diverse approaches to various problems in the cluster (e.g., achieving data locality, dealing with faults), and to evolve these solutions independently. Second, it keeps Mesos simple and minimizes the rate of change required of the system, which makes it easier to keep Mesos scalable and robust.

Page 34: Mesos by zigi

34KrDAG – ZIGI zigispace.netKrDAG – ZIGI zigispace.net

End.