© Excellent backgrounds/Shutterstock.com
Aufbau einer PaaS-Lösung mit Apache Mesos

Bau dir eine private Cloud


Technologienahe Unternehmen partizipieren schon seit Jahren an den Vorteilen des Cloud Computings. Auch traditionelle produzierende Unternehmen erkennen durch Entwicklungen im Bereich Internet of Things das Potenzial Cloud-basierter Dienste und Plattformen und möchten sie gewinnbringend nutzen. Für einige Unternehmen ist der erste Schritt der Aufbau einer Private-Cloud. Eine Möglichkeit dafür bietet eine Kombination von Apache Mesos und Apache Marathon.

Märkte wandeln sich inzwischen schnell. Eine Innovation, die heute Business Value stiftet, kann sich schnell zum Kostentreiber wandeln. Die durchschnittliche Beschaffungszeit von physikalischer Hard- oder Software ist viel zu lang, um innerhalb der Wertschöpfungskette Business Value zu generieren. Somit sind klassische Beschaffungs- und Betriebsprozesse nicht geeignet, die Bewegung zu unterstützen, Informationstechnologie in den Kern der Wertschöpfung zu rücken. Cloud Computing dreht sich um die bedarfsgerechte (on demand) Zurverfügungstellung von Services und deren optimale Nutzung. Werden Ressourcen wie Rechnerinfrastruktur, Plattformen oder Software benötigt, müssen diese sofort zur Verfügung stehen und optimal ausgelastet werden können. So unterstützt Cloud Computing das Schaffen von Wert innerhalb der Wertschöpfungskette.

Cloud Computing lässt sich in drei Abstraktionsebenen unterteilen: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) und Software as a Service (SaaS). Je nachdem, auf welcher Ebene Cloud Computing betrieben wird, erledigen Cloud-Anbieter unterschiedliche Aufgaben für die Nutzer. Dieser Artikel zeigt einen möglichen Aufbau einer Private-Cloud-PaaS-Lösung auf Basis von Apache Mesos und Apache Marathon.

Abstraktionsebenen des Cloud Computings

Infrastructure as a Service (IaaS)

Bei Infrastructure as a Service geht es um das Bereitstellen von Rechnerinfrastruktur, z. B. Server. Diese werden vom Cloud-Anbieter provisioniert und in unterschiedlichen Hard- und Softwarekonfigurationen zur Verfügung gestellt. Diese Abstraktionsform überlässt die Verwaltung der physikalischen Hardware vollständig dem Cloud-Anbieter. Wird die Rechnerinfrastruktur nicht mehr benötigt, kann sie an den Cloud-Anbieter zurückgegeben werden. IaaS ermöglicht die sofortige, zeitlich flexible und bedarfsgerechte Nutzung von Servern.

Platform as a Service (PaaS)

PaaS ermöglicht Unternehmen das Verwenden von Applikationsplattformen wie unterschiedliche Middlewares oder Datenbanken on demand. Ein Nutzer verwendet diese Plattformen, um eigene, Cloud-fähige Anwendungen zu entwickeln und zu betreiben. Meist sind diese Plattformen an eine konkrete Programmiersprache gebunden. Dem Nutzer müssen alle notwendigen Möglichkeiten für den Betrieb und die Entwicklung von Cloud-fähigen Anwendungen zur Verfügung stehen. Das Deployment, das Monitoring und das lastabhängige Skalieren von Anwendungen muss ermöglicht werden.

Software as a Service (SaaS)

Diese höchste Abstraktionsebene des Cloud Computings ermöglicht das Nutzen von Software im Bedarfsfall. Ein Cloud-Anbieter stellt innerhalb seiner Cloud ein Softwareangebot bereit. Unternehmen können im Bedarfsfall direkt auf dieses Angebot zugreifen. Beispiele hierfür sind CRM- oder ERP-Systeme.

Public- und Private-Cloud

Zusätzlich zur Unterscheidung nach der Abstraktionsebene wird zwischen Public- und Private-Clouds unterschieden. Der Unterschied besteht in der Zugänglichkeit und meist im Betreiber der Cloud-Lösung. Eine Public-Cloud wird von einem spezialisierten, externen Cloud-Anbieter über das Internet zugänglich gemacht und kann über unterschiedliche Mietmodelle genutzt werden. Eine Private-Cloud ist nicht öffentlich. Oft werden Private-Clouds vom nutzenden Unternehmen selbst aufgebaut und betrieben, das Datacenter befindet sich dann im Besitz des Unternehmens. Unternehmen, die einen hohen Datenschutz anstreben, tendieren meist zum Aufbau einer Private-Cloud. So müssen sie keine Daten innerhalb einer öffentlich zugänglichen Public-Cloud speichern und können hohe Datenschutzbedürfnisse befriedigen.

Aufbau einer Cloud-Plattform mit Apache Mesos

Um Cloud Computing zu ermöglichen, wird eine Plattform benötigt, die von der konkreten Hard- und Software eines Datacenters abstrahiert. Apache Mesos bietet eine solche Abstraktionsschicht und ist in der Lage, die Rechenkapazitäten von Datacentern als Ressourcenpool abzubilden [1]. Die Architektur von Mesos sieht hierfür Master- und Agentkomponenten vor (Abb. 1). Eine Masterkomponente übernimmt die Verwaltung mehrerer Agentkomponenten. Diese Agents, die auf den virtuellen oder physikalischen Nodes im Datacenter laufen, melden dem Mesos-Master die auf ihrem Node verfügbaren Ressourcen. Dadurch erhält der Mesos-Master Informationen zu verfügbaren CPUs, Arbeitsspeicher oder freier Festplattenkapazität. Diese Informationen werden der Masterkomponente in Form von Resource Offers mitgeteilt.

buchholz_private_cloud_1.tif_fmt1.jpgAbb. 1: Subkomponenten von Apache Mesos und deren Verantwortlichkeiten

Innerhalb des Mesos-Masters entscheidet ein Allocation Module über die Verteilung der Resource Offers an Frameworks. Das standardmäßig in Apache Mesos vorhandene Allocation Module verwendet für diese Entscheidung den Dominant-Resource-Fairness-(DRF-)Algorithmus [2]. Für eine optimale Auslastung der im Cluster verfügbaren Ressourcen ist dieser Schritt essenziell. DRF versucht, die von Frameworks verwendeten (Accept-)Ressourcen zu messen. Für jedes Framework wird die Dominant Resource in Prozent der im Cluster für diesen Typ verfügbaren Ressourcen festgestellt. DRF stellt daraufhin die Verteilung (Dominant Share) der Dominant Resource fest und maximiert die minimale Verteilung unter den Frameworks. Das heißt, eine Dominant Resource, z. B. CPU, wird zuerst dem Framework angeboten, das bisher die kleinste Zuteilung dieser Ressource erhalten hat. Dieses Verfahren wird pro angebotener Ressource durchgeführt. Dominant Resource und Dominant Share ändern sich pro Runde fortlaufend. Das Verfahren erlaubt eine gute Ausnutzung der im gesamten Cluster verfügbaren Ressourcen. Ein Framework entscheidet anhand der vom Master angebotenen Ressourcen über innerhalb des Ressourcenpools auszuführende Tasks. Innerhalb eines Frameworks trifft eine Scheduler-Komponente diese Entscheidung. Werden angebotene Ressourcen zurückgewiesen, stellt der Master sie dem nächsten Framework zur Verfügung.

Frameworks entscheiden über die Ressourcennutzung. Tasks stellen eine Abstraktion von Aufgaben dar, die unter Nutzung dieser Ressourcen ausgeführt werden. Möchte ein Framework einen Resource Offer annehmen (Accept), meldet es dem Master eine so genannte TaskInfo [3] mit allen notwendigen Informationen. Innerhalb dieser TaskInfo sind Informationen enthalten, wie benötigte Parameter oder die Beschreibung des Executors. Der Master leitet die TaskInfo an den Agent weiter. Dieser interagiert mit dem Executor, der für die Taskausführung vorgesehen ist.

Im einfachsten Fall wird vom Agent bei Übergabe einer TaskInfo ein Betriebssystemprozess unter Verwendung des übergebenen Commands gestartet. Der Command wird über einen CommandInfo beschrieben. Der Command startet den Executor, und dieser führt den Task aus. Bei dieser einfachen Variante werden Tasks auf einem Agent lediglich über rudimentäre Mittel des Betriebssystems voneinander isoliert, also be...

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