Nane Kratzke

Thesis:

Automatisiertes Ausbringen von Content-Management-Systemen in Kubernetes Clustern

Published: 23 Aug 2022 (latest update: 04 Dec 2022)
Type: Bachelor (B. Sc.)
State: completed
Study: Informatik
Language: Deutsch
Author: Eric De Ron
Company: Advantic

In dieser Arbeit soll untersucht werden, wie bestehende Content-Management-Systeme (CMS) in ein Kubernetes Cluster ausgebracht werden können (deploy). Dabei ist davon auszugehen, dass ein CMS in einer üblichen Linux Umgebung betrieben und typische Softwarekomponenten wie bspw. Apache als Webserver, MariaDB als Datenbank und PHP als Programmiersprache verwendet.

Als Untersuchungsgegenstände sind im Rahmen dieser Abschlussarbeit mindestens zu betrachten:

  • iKiss (CMS der Advantic GmbH)
  • Wordpress (o. vglb.)

Die Komponenten dieser LAMP Stacks sollen auf geeignete Kubernetes Konzepte (wie Deployment, Pod, Container Image, Service, Ingress, StatefulSet, Persistent Volume Claims, ConfigMaps, Secrets, Network Policies, etc.) abgebildet werden, die mittels eines im selben Kubernetes Cluster betriebenen Web-UI deployed werden können. Eine CMS-Instanz soll dabei isoliert von anderen CMS-Instanzen im Cluster betrieben werden können und so den Betrieb von isolierten CMS-Instanzen unterschiedlicher Kunden (Multi-Tenancy) unterstützen.

Die Aufgaben dieser Arbeit umfassen im Einzelnen:

  1. Anforderungsanalyse (mindestens am Bsp. des iKiss CMS der Advantic GmbH und Wordpress (o. vglb.)).
  2. Architekturanalyse bestehender CMS und deren Abbildung auf geeignete Kubernetes-Konzepte
  3. Analyse von möglichen Problemen, Entwicklung von Lösungswegen sowie Ableitung von Lessons Learned. Dabei ist die Eignung oder Entwicklung von Helm-Charts explizit zu prüfen.
  4. Erstellung eines einsatzbereiten Prototyps (umfasst CMS-Deploying und Web-UI)
  5. Dokumentation

Auch die Web-UI soll in Kubernetes automatisiert deploybar sein. Eine entsprechende Infrastruktur wird im Rahmen der Abschlussarbeit bereitgestellt werden. Die Implementierung der serverseitigen Komponenten der Web-UI sollte wenn möglich in Python erfolgen. Andere Programmiersprachen können genutzt werden, wenn deren bessere Eignung explizit und nachvollziehbar begründet werden kann. Der Einsatz von Micro Web-Frameworks wie bspw. Flask ist statthaft und gern gesehen.

Im Sinne des Open Source Gedankens sollte die Autor:in anstreben, die Lösung als Open Source Projekt im Anschluss der Arbeit der Allgemeinheit zur Verfügung zu stellen und über die Abschlussarbeit hinaus als Open Source Produkt fortzuführen.