Was ist Mesos und DC/OS?

Apache Mesos™ ist ein verteilter Kernel und Scheduler für Cluster-Umgebungen. DC/OS steht für „DataCenter Operating System“ und ist ein von Mesosphere entwickeltes Produkt, das auf Apache Mesos basiert. In vielen Unternehmen hat der IT-Betrieb eine beinahe emotionale Bindung an seine Maschinen entwickelt.  Die Server haben Namen, eine Historie an Incidents, einzigartige Konfigurationseigenschaften und feste  „Betreuer“.

Solche „Haustier-Maschinen“ werden gehegt und gepflegt und es wird ein hoher Aufwand  betrieben, um diese am Leben zu erhalten. Ein solcher Umgang mit IT-Infrastruktur war in früheren Jahren  ein guter Ansatz – heutige verteilte und skalierbare Systeme (Microservices, Container, Big Data, etc.)  bringen aber neue Anforderungen mit, die andere Vorgehensweisen erfordern. Klassische IT -Organisationen kämpfen unter anderem mit folgenden Problemen:

Herden in der Produktion

In der Landwirtschaft haben Großbauern eine andere Beziehung zu ihren Tieren: Es sind Herden. Die  Tiere werden zwar als Individuen behandelt, aber nach einem Standardverfahren. Wird ein Tier krank, wird  es aus der Herde entfernt und ersetzt. Man kann darüber streiten, ob es ethisch und moralisch richtig ist, so mit Tieren umzugehen – man erreicht auf diese Weise aber definitiv eine höhere Wirtschaftlichkeit.  Auch wenn es viele Administratoren anders sehen – IT ist Mittel zum Zweck. Sie muss vor allem wirtschaftlich sein und dem Unternehmen helfen, Geld zu verdienen. Sind die Maschinen standardisiert und so gebaut, dass man sie leicht austauschen kann, entstehen diverse Vorteile:

  • Verhält sich eine virtuelle Maschine „komisch“, kann man sie einfach löschen und neu aufsetzen.  Keine Einzelbehandlung mehr. Keine Fehlersuche. „If an instance fails, kill and replace it.“
  • Lastspitzen und -lücken werden durch die gesamte Herde optimiert. Ein Server dient nicht nur  einer bestimmten Aufgabe – Workloads können flexibel im Cluster verteilt werden. Dadurch gibt es  keine lokalen Performanceprobleme und die Gesamtauslastung aller Maschinen wird erhöht.
  • Die Planung der Last wird deutlich einfacher. Man fängt klein an und skaliert nach Bedarf.
  • Ein kleines Operations-Team kann eine sehr große Anzahl von Maschinen betreuen, wenn diese hoch standardisiert sind.
  • Standardisierte Frameworks ermöglichen schnelles Ausprobieren neuer Technologien. Es ist nicht  mehr nötig, jedes Rad neu zu erfinden.
  • Kann man eine Instanz leicht neu erzeugen und austauschen, erübrigen sich auch viele sonst typische Fragen. Beispielsweise muss man keinen „Einzel-Backup“ mehr machen oder Rollbackprozeduren entwickeln, wenn man sicher ist, dass ein Server automatisch und in kurzer Zeit aus  einem versionierten Repository neu erzeugt werden kann.
  • Durch die hohe Standardisierung und Automatisierung wird es leichter, Testumgebungen aufzubauen und deren Konfiguration mit der Produktionsumgebung gleich zu halten.

Was ist Mesos?

Apache Mesos™ ist ein verteilter Kernel und Scheduler für Cluster-Umgebungen. Die Software abstrahiert die darunter liegende Hardware und Infrastruktur und stellt Funktionen und APIs bereit, mit denen man  standardisierte, verteilte und selbst heilende Systeme bauen kann. Die Entscheidung, welche Prozesse bzw. Anwendungen auf welchen Maschinen laufen und welche Ressourcen sie dort konsumieren, fällt die Software. Bisher wurden solche Entscheidungen in der Regel durch Menschen am Anfang eines Projekts gefällt und waren eher statisch. Mithilfe von Mesos kann man seine zur Verfügung stehende Infrastruktur flexibler und besser auslasten.

Benötigt eine Anwendung mehr Power, kann man diese auf mehr Maschinen verteilen. Hat eine Anwendung nichts zu tun, werden überflüssige Instanzen beendet. Mesos behält dabei den Überblick, welche Ressourcen bereits stärker oder schwächer ausgelastet sind und verteilt die Workload entsprechend.

Die Anwendungsentwickler haben klar definierte, konsistente Schnittstellen auf die Infrastruktur. Diese APIs  definieren auch die Grenze zwischen DevOps und InfrastructureOps. Die Softwareentwickler beschränken sich darauf, ihre anwendungsspezifische Laufzeit einzurichten und zu betreiben. InfrastructureOps kann  hingegen anwendungsneutrale Laufzeitkomponenten für alle Maschinen einrichten und betreiben.

Aus Sicht der InfrastructureOps sind nun alle Maschinen gleich. Damit können auch kleine Teams eine sehr  hohe Anzahl von Maschinen betreuen. Eine sehr große Anzahl: Mesos verwaltet zum Teil Tausende von Servern für Apple Siri, AirBnb, Twitter uvm. – und das mit vergleichsweise sehr kleinen Teams.

Einige prominente Beispiele sind:

  • Spark
  • Cassandra
  • Kafka
  • Hadoop
  • Zeppelin
  • Storm
  • Swarm
  • Jenkins

Doch DC/OS unterstützt mehr als nur die reine Installation von Paketen. Folgende Features möchten wir  ebenfalls hervorheben:

  • Service Discovery
  • Load Balancing
  • Workload Scheduling
  • 0-Downtime Deployments
  • Umgang mit defekter Hardware
  • Monitoring und Fehleridentifikation
  • einfache Skalierbarkeit

Möchte man auf DC/OS eigene Anwendungen laufen lassen, gibt es mit Kubernetes und Marathon gleich zwei Docker-Laufzeiten, mit denen produktionsreife Docker-Cluster möglich sind. Ist die eigene Applikation  selbst ein verteiltes System, kann man auch eigene DC/OS-Frameworks schreiben.

Wenn Sie mehr über Mesos und DC/OS erfahren möchten, empfehlen wir Ihnen folgendes Video (auf  Englisch), das neben einer kurzen Einführung auch eine DC/OS-Demo beinhaltet:

Außerdem bieten wir unseren Kunden einen kostenlosen „Brown Paper Bag Lunch“ an. Unsere Technik-Experten besuchen Sie vor Ort in Ihrer Firma und bringen neben tiefen technischen Einblicken auch Sandwiches und Getränke mit. Weitere Informationen finden Sie … hier  Lieferheld der Innovation

Nehmen Sie Kontakt mit uns auf.

Kontaktieren Sie uns

Ansprechpartner

Stefan Siprell
Standortleiter Karlsruhe

Zum Experten-Profil