Nane Kratzke

Thesis:

Analyse und Integration von Storage-Clustern in elastische Container Plattformen

Published: 04 Oct 2016 (latest update: 10 Jul 2017)
Type: Master (M. Sc.)
State: completed
Study: Medieninformatik
Language: German
Author: Thomas Finnern
Institute: CoSA

Cloud Computing ist häufig durch nicht-standardisierte, herstellerspezifische Schnittstellen und Vendor Lock-in gekennzeichnet. Der Einsatz von elastischen Container Plattformen (wie Kubernetes, Apache Mesos, Docker Swarm, Nomad, etc.) kann Vendor Lock-In reduzieren. Elastische Container Plattformen können auf Maschinen von verschiedenen Cloud Service Providern (z.B. AWS, GCE, Azure) ausgebracht werden und ermöglichen eine Migration von Workloads zwischen Cloud-Anbietern. Eine Realisierung dieses Ansatzes wurde bereits teilweise durch die Entwicklung eines Cluster-Deployers für Kubernetes auf Amazon AWS und OpenStack umgesetzt. Aktuell können zustandslose Applikationen providerunabhängig bereitgestellt werden. Mit einem ergänzenden Storage-Cluster sollen nun auch zustandsbehaftete Applikationen unterstützt werden.

In dieser Masterarbeit sollen dafür existierende Open Source Storage-Cluster Lösungen analysiert, integriert und hinsichtlich Migrierbarkeit evaluiert werden.

Hierzu müssen im Detail folgende Teilaufgaben bearbeitet und dokumentiert (Masterarbeit) werden:

Hinweis: Sollten sich während der Bearbeitung dieser Arbeit einzelne Aspekte als schwer realisierbar erweisen, kann die Aufgabenstellung - nach plausiblem Nachweis der Schwierigkeit - angepasst werden.

Analyse von bestehenden Storage-Cluster Lösungen:

Aktuell gibt es mehre Storage-Cluster-Produkte die potenziell geeignet sind (eine entsprechende Liste wird zur Verfügung gestellt und bildet den Ausgangspunkt der Analyse).

  • Diese sollen auf ihre speziellen Besonderheiten untersucht, vergleichend analysiert und hinsichtlich ihrer Integrationseignung für elastische Container Plattformen beurteilt werden.
  • Die Kriterien bei der vergleichenden Analyse sollen in Absprache selbstständig erarbeitet werden.
  • Bei der vergleichenden Analyse sollen mindestens die drei geeignetsten Storage-Cluster-Lösungen sowie die Cluster-Software Kubernetes und Docker’s SwarmMode berücksichtigt werden. Die vergleichende Analyse sollen mögliche Umsetzungsmöglichkeiten betrachten, insbesondere die
    • containerisierte Bereitstellung des Storage-Clusters innerhalb eines Clusters,
    • die separate, “native” Storage-Software-Installation in Kombination mit Container-Cluster-Plug-Ins (2.1) oder Docker-Plug-Ins (2.2)

Automatisches Bereitstellen von Storage-Cluster Lösungen (Integration):

Aktuell ist ein Deployer für ein Kubernetes Cluster vorhanden und für andere Plattformen, wie beispielweise Apache Mesos und Docker Swarm, geplant. Der bestehende Deployer soll um eine Storage-Komponente ergänzt werden.

  • Zunächst soll GlusterFS in einer containerisierten Version auf dem vorhandenen Kubernetes Cluster installiert werden.
  • Das System muss skalierbar sein.
  • Es soll ein Storage-Cluster-Deployer für drei Storage-Cluster (wie bspw. GlusterFS, Ceph oder Flocker) prototypisch implementiert werden. Die Storage-Cluster sind entsprechend der vorhergegangen Analyse auszuwählen.
  • Die Architektur des Storage-Cluster-Deployer soll so gestaltet und dokumentiert werden, dass andere Storage-Systeme nachträglich ergänzt werden können.
  • Um den Storage-Cluster zu beschreiben soll das JSON-Format verwendet werden. Eine starke Anlehnung an die vorhandene Deployer-Umsetzung ist gewünscht.
  • Als Programmiersprache ist idealerweise Ruby zu verwenden. Wird sich gegen Ruby entschieden, ist die Sprachwahl gesondert zu begründen und die Vorteile entsprechend nachvollziehbar aufzuführen.
  • Der Storage-Deployer ist so zu entwickeln, dass er den Gem­-Konventionen entspricht, da die Software auf RubyGems.org bereit gestellt werden soll.

Evaluierung der Migrierbarkeit von Storage-Clustern:

  • Der Storage-Cluster-Deployer muss auf Maschinen von Amazon AWS, GCE und OpenStack deployed werden können.
  • Die Provider-Migration zwischen Cloud-Service Infrastrukturen soll getestet werden. Dazu gehört die Migration von AWS zu OpenStack und umgekehrt sowie die Migration von AWS zu GCE und umgekehrt.
  • Hierzu sind sinnvolle Testfälle mit Applikationen sinnvoller Komplexität zu definieren und durchzuführen. Auftretende Einschränkungen insbesondere hinsichtlich Datenvollständigkeit und –konsistenz sind aufzuführen.
  • Geeignete Test-Tools müssen selbstständig gefunden oder entwickelt werden.

Downloads