ݺߣ

ݺߣShare a Scribd company logo
범용 PaaS플랫폼
Mesos(Mesosphere)
Fastcat | Open Cloud Engine
swsong at fastcat.co
송상욱
www.opence.org
www.fastcat.co
Mesos 소개
• 분산 시스템 커널
– 리눅스 커널과 동일하며, 단지 추상화 레벨
만 다르다.
• 모든 머신에서 동작하며, 실행 어플리케이션
에 대해 리소스관리와 스케쥴링 API를 제공.
• Mesosphere = Mesos + Marathon + Chrono
s
• Marathon은 작업(컨테이너)관리담당이며,
Chronos는 작업스케쥴러이다.
Mesos 소개
• 아파치 Top Level 프로젝트
• 트위터, 에어비앤비, 미소스피어가 사용
• 구글은 Kubernetes용 Mesos 서비스중
(https://google.mesosphere.com/)
• 운영시 10000대 노드까지 확장가능
• 패키지와 서포트는 미소스피어 담당
• 기본적으로 Docker지원
• 튜토리얼 코스
http://docs.mesosphere.com/intro-course/
Mesos 노드추상화
• Static Partitioning은 스케일과 장애대응이 어렵다.
• Mesos의 노드들은 모든 Task에 대해 공유된다.
Mesos 동작구성도
• Mesos에서 Docker는 작업의 Type중 하나이다.
• Zookeeper를 통해 HA를 구성한다.
• Scheduler는 Marathon을 사용하거나, 직접 개발이 가능하다.
Mesos 구성도1
• Marathon은 PaaS플랫폼
• 향후 Kubernates 지원계획
Mesos 구성도2
• 하이브리드 Cloud 구성가능
• Batch 작업은 Chronos로 지원
Mesos 프레임워크
• Meta-Frameworks / HA Services: Aurora,
Marathon
• Distributed Cron: Chronos
• Containers: Docker
• Continuous Integration: Jenkins, GitLab
• Big Data: Hadoop, Spark, Storm, Kafka, Ca
ssandra, Hypertable, MPI
• Python workloads: DPark, Exelixi
Mesos 프레임워크
마라톤은 Rails, Django등을 실행할 수 있으며, 어플리케이션을 시작,정지,
스케일링 할수 있는 REST API를 제공한다.
Mesos 동작원리
1. 슬레이브에 여유 리소스가 생기면, 마스터에게 여유정보를
통보한다.
2. 할당정책에 따라서, 마스터는 얼마나 많은 리소스가 각 프레
임워크에 할당되었는지 결정한다.
3. 그다음, 마스터가 제안를 보내고, 스케줄러는 어는 제안 리소
스가 받아들여졌는지 선택한다.
4. 프레임워크가 제안 리소스를 받아들이면, 실행할 작업내용을
Mesos에게 보낸다.
5. 적합한 리소스를 실행기에 할당한 슬레이브에게 마스터는 차
례대로 작업들을 보낸다.
6. 최종적으로, 프레임워크는 작업을 실행하게 된다.
Scheduler 개발
import org.apache.mesos.MesosSchedulerDriver;
import org.apache.mesos.Protos;
import org.apache.mesos.Protos.*;
import org.apache.mesos.Protos.TaskID;
import org.apache.mesos.Scheduler;
import org.apache.mesos.SchedulerDriver;
public class MyScheduler implements Scheduler {
// Override Scheduler Functions like resourceOffers, etc.
}
* 리소스 할당등의 스케쥴러를 개발할수 있다.
Executor개발
import org.apache.mesos.Executor;
import org.apache.mesos.ExecutorDriver;
import org.apache.mesos.MesosExecutorDriver;
import org.apache.mesos.Protos.Environment.Variable;
import org.apache.mesos.Protos.*;
import org.apache.mesos.Protos.TaskID;
import org.apache.mesos.Protos.TaskStatus;
public class MyExecutor implements Executor {
// Override Executor Functions such as launchTask, etc.
}
* 작성실행기등의 Executor를 개발할수 있다.
참고자료
• https://docs.mesosphere.com/
• http://abhishek-tiwari.com/post/building-
distributed-systems-with-mesos
• http://www.slideshare.net/Docker/building
-web-scale-apps-with-docker-and-mesos

More Related Content

범용 PaaS 플랫폼 mesos(mesosphere)

  • 1. 범용 PaaS플랫폼 Mesos(Mesosphere) Fastcat | Open Cloud Engine swsong at fastcat.co 송상욱 www.opence.org www.fastcat.co
  • 2. Mesos 소개 • 분산 시스템 커널 – 리눅스 커널과 동일하며, 단지 추상화 레벨 만 다르다. • 모든 머신에서 동작하며, 실행 어플리케이션 에 대해 리소스관리와 스케쥴링 API를 제공. • Mesosphere = Mesos + Marathon + Chrono s • Marathon은 작업(컨테이너)관리담당이며, Chronos는 작업스케쥴러이다.
  • 3. Mesos 소개 • 아파치 Top Level 프로젝트 • 트위터, 에어비앤비, 미소스피어가 사용 • 구글은 Kubernetes용 Mesos 서비스중 (https://google.mesosphere.com/) • 운영시 10000대 노드까지 확장가능 • 패키지와 서포트는 미소스피어 담당 • 기본적으로 Docker지원 • 튜토리얼 코스 http://docs.mesosphere.com/intro-course/
  • 4. Mesos 노드추상화 • Static Partitioning은 스케일과 장애대응이 어렵다. • Mesos의 노드들은 모든 Task에 대해 공유된다.
  • 5. Mesos 동작구성도 • Mesos에서 Docker는 작업의 Type중 하나이다. • Zookeeper를 통해 HA를 구성한다. • Scheduler는 Marathon을 사용하거나, 직접 개발이 가능하다.
  • 6. Mesos 구성도1 • Marathon은 PaaS플랫폼 • 향후 Kubernates 지원계획
  • 7. Mesos 구성도2 • 하이브리드 Cloud 구성가능 • Batch 작업은 Chronos로 지원
  • 8. Mesos 프레임워크 • Meta-Frameworks / HA Services: Aurora, Marathon • Distributed Cron: Chronos • Containers: Docker • Continuous Integration: Jenkins, GitLab • Big Data: Hadoop, Spark, Storm, Kafka, Ca ssandra, Hypertable, MPI • Python workloads: DPark, Exelixi
  • 9. Mesos 프레임워크 마라톤은 Rails, Django등을 실행할 수 있으며, 어플리케이션을 시작,정지, 스케일링 할수 있는 REST API를 제공한다.
  • 10. Mesos 동작원리 1. 슬레이브에 여유 리소스가 생기면, 마스터에게 여유정보를 통보한다. 2. 할당정책에 따라서, 마스터는 얼마나 많은 리소스가 각 프레 임워크에 할당되었는지 결정한다. 3. 그다음, 마스터가 제안를 보내고, 스케줄러는 어는 제안 리소 스가 받아들여졌는지 선택한다. 4. 프레임워크가 제안 리소스를 받아들이면, 실행할 작업내용을 Mesos에게 보낸다. 5. 적합한 리소스를 실행기에 할당한 슬레이브에게 마스터는 차 례대로 작업들을 보낸다. 6. 최종적으로, 프레임워크는 작업을 실행하게 된다.
  • 11. Scheduler 개발 import org.apache.mesos.MesosSchedulerDriver; import org.apache.mesos.Protos; import org.apache.mesos.Protos.*; import org.apache.mesos.Protos.TaskID; import org.apache.mesos.Scheduler; import org.apache.mesos.SchedulerDriver; public class MyScheduler implements Scheduler { // Override Scheduler Functions like resourceOffers, etc. } * 리소스 할당등의 스케쥴러를 개발할수 있다.
  • 12. Executor개발 import org.apache.mesos.Executor; import org.apache.mesos.ExecutorDriver; import org.apache.mesos.MesosExecutorDriver; import org.apache.mesos.Protos.Environment.Variable; import org.apache.mesos.Protos.*; import org.apache.mesos.Protos.TaskID; import org.apache.mesos.Protos.TaskStatus; public class MyExecutor implements Executor { // Override Executor Functions such as launchTask, etc. } * 작성실행기등의 Executor를 개발할수 있다.