© DrHitch/Shutterstock.com
Cloud Computing

4 Eine Einführung in den DC/OS Stack


Apache Mesos ist der Kernel für verteilte Systeme. Es bietet Anwendungen analog zum klassischen Betriebssystemkernel einheitliche Schnittstellen, um Ressourcen im Cluster zu verwalten und an Anwendungen zu vermitteln. Mesos ist der Kernbestandteil von DC/OS, einem Betriebssystem für die Cloud. Im Rahmen dieses Kapitels geben wir eine Einführung in Mesos und zeigen, wie man die beispielhafte Spring-Cloud-Anwendung Zwitscher auf DC/OS zum Laufen bringt.

Die Kernaufgabe von Mesos ist das Scheduling von Containern im Cluster. Mesos führt die Container dabei auf den Cloud-Knoten zuverlässig und ressourcenschonend aus. Rescheduling erfolgt bei Bedarf, z. B. beim Ausfall einer Ressource oder wenn alternative, passendere Ressourcen frei werden. Dann wird die Ausführung eines Containers auf eine andere Ressource verlagert. Mesos abstrahiert dabei die konkrete Infrastruktur hin zu Ressourcen wie Rechenleistung, Netzwerk oder Storage. Der Nutzer von Mesos übergibt lediglich einen Container zur Ausführung. Ob dieser dann in einer lokalen virtuellen Maschine, einer privaten oder öffentlichen IaaS Cloud oder auf klassischen Server Racks ausgeführt wird, verbirgt Mesos. Ebenso vermittelt Mesos je nach Bedarf Netzwerkverbindungen und Storage Mounts. Ziel ist, mehrere Mandanten und Anwendungen im Cluster genauso einfach und effektiv zu betreiben wie auf einem lokalen Rechner, damit die verfügbaren Ressourcen möglichst effektiv genutzt werden können.

Zusammenspiel mit einem Cluster-Orchestrierer

Mesos ist ein Cluster-Scheduler. Wie spielt Mesos mit einem Cluster-Orchestrierer zusammen? Das Zusammenspiel (Abb. 4.1) lässt sich am einfachsten erklären, wenn wir die Analogie zum klassischen Betriebssystem betrachten. Im klassischen Betriebssystem gibt es Ausführungseinheiten wie Prozesse und Threads und darüber Anwendungen. Eine Anwendung kann aus vielen Ausführungseinheiten bestehen, die alle möglichen Abhängigkeiten, Querbeziehungen und Eigenheiten mitbringen.

image

Abbildung 4.1: Der Cloud Native Stack: Mesos, Kubernetes, Spring Cloud

Der Kernel des Betriebssystems kennt nur Threads und Prozesse und weiß nichts von Anwendungen. Anwendungen werden von zusätzlichen Komponenten wie einem init-System für Services (sytemd oder initd) oder einem Applikationsserver gesteuert. Im Cluster erfüllt Mesos die Rolle des Kernels und bietet Ressourcenmanagement und -Scheduling. Mesos kennt als Ausführungseinheit Tasks, weiß aber nichts von Anwendungen. Ein Task ist die Ausführung eines Docker-Containers oder eines Shell-Kommandos. Anwendungen werden vom Orchestrierer gesteuert.

Wie funktioniert Mesos?

Mesos setzt eine Master-Slave-Architektur um (Abb. 4.2). Es gibt einen Master, der Agenten verwaltet, die auf jedem Knoten (Worker-Node) im Cluster laufen. Mesos-Frameworks führen Tasks auf diesen Agenten aus. In Abbildung 4.2 sind zwei Frameworks in weiß dargestellt: Eines für Hadoop und eines für MPI. Ein Framework besteht aus zwei Komponenten: einem Scheduler, der sich am Master anmeldet, um Ressourcenangebote zu erhalten, und einem Executor, der die tatsächliche Ausführung der Tasks übernimmt. Die Frameworkschnittstelle ist auch die Schnittstelle zum Cluster-Orchestrierer. Marathon oder auch Kubernetes laufen als Frameworks im Mesos-Cluster. Mesos implementiert außerdem zweistufiges Scheduling (Two-Level-Scheduling, Abb. 4.3).

Hintergrundinformationen zu Mesos und DC/OS

Mesos wurde vom RAD Lab der University of California entwickelt und das erste Mal 2009 veröffentlicht [1]. 2011 war Mesos bereits deutlich fortgeschritten [2] und wurde von Twitter adaptiert. Mittlerweile setzen auch Airbnb, Apple und viele weitere auf Mesos und betreiben damit Cluster mit zehntausenden Rechnern. Seit 2013 ist Mesos ein Top-Level-Projekt der Apache Software Foundation.

DC/OS steht für Data Center Operating System [3]. DC/OS erweitert Mesos als Kernel um zusätzliche Funktionalität mit dem Ziel, ein vollwertiges, integriertes Betriebssystem für die Cloud zu bieten. Das System wurde im April 2016 von Mesosphere unter der Apache-2.0-Lizenz freigegeben und bietet unter anderem:

  • Einen DNS-Service für Service Naming und Discovery
  • Ein Command Line Interface sowie ein webbasiert...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang