Admin-Log Nr. 4 - Wie sieht eigentlich die neue Infrastruktur aus und was hat MyFTB mit der Milchstraße zu tun?

Hallo liebe MyFTB-Community,

knapp drei Monate sind bereits vergangen, seit wir in unserem ersten Admin-Log - Einleitung und die Fortführung zu: Wohin fließen eigentlich die Spendengelder? über den Beginn unserer Vorhaben zur kompletten Umstrukturierung der bisherigen MyFTB-Infrastruktur berichtet haben.

In dieser Zeit haben wir uns exzessiv mit der Umsetzung der geplanten Konzepte auseinandergesetzt und viele Fortschritte gemacht, sodass wir nun an dieser Stelle über viele neue Dinge und vor allem auch Dazugelerntes schreiben können.

Den Anfang machen wir heute mit dem bereits im Titel befindlichen Thema: Wie sieht eigentlich die neue Infrastruktur aus und was hat MyFTB mit der Milchstraße zu tun?


Nun, zunächst kann man natürlich eine relativ einfache Antwort auf diese Frage finden: Die von uns betriebenen Server stehen in Deutschland und sind damit natürlich auch irgendwie Teil der Milchstraße. Das wäre allerdings ein ziemlich langweiliger Blog-Eintrag, also muss da natürlich mehr dahinterstecken.

Um diese Frage zu klären, müssen wir zuerst ein wenig in der Zeit zurückspringen:

Bereits unsere vorherigen Server unterteilten wir immer strikt in zwei Kategorien:
Server, die Infrastruktur-Aufgaben erfüllen (z.B. Hosting von Datenbanken oder Webdiensten) und Server, die unsere Minecraft-Server beherbergen.

Anders als andere behandeln wir unsere Server aber nach wie vor als geliebte Haustiere und nicht etwa als pures Nutzvieh. Aus diesem Grund erhält auch so gut wie jeder Server bei uns einen schönen und passenden Namen. Als Nomenklatur haben wir dabei festgelegt, dass Infrastruktur-Server nach Planeten der Milchstraße benannt werden, die Server für Minecraft-Server nach Minecraft-Blöcken und -Items.

Diese Regeln übernehmen wir weiterhin, doch beim Rest ändert sich nun einiges.

Schon seit etwa 2016 setzen wir auf Containerisierung für unsere Infrastruktur-Dienste. Dies hat den Vorteil, dass Anwendungen einfach und schnell bereitgestellt und verwaltet werden können und sich einzelne Anwendungen nicht in die Quere kommen können, da diese, wie der Name bereits vermuten lässt, in sogenannte Container gesperrt sind. Bisher verwendeten wir hierfür Docker, was quasi der Platzhirsch auf diesem Gebiet ist.

Auch in der neuen Infrastruktur werden wir weiterhin auf Containerisierung setzen, jetzt jedoch mit der Erweiterung um eine weitere Ebene darüber: Kubernetes! Kubernetes ist eine von Google entwickelte Software, die sich um die Orchestrierung von Containern kümmert. Orchestrierung bedeutet dabei so viel wie automatische Konfiguration, Verwaltung und Koordinierung von verschiedenen Systemen.

In der Praxis wirkt sich dies wie folgt aus:
Docker ist (zumindest in der Urform) lediglich für einen einzigen Server zuständig und verwaltet die Container auf diesem. Fällt dieser Server nun aus, fallen alle darauf befindlichen Dienste mit aus. Möchte man Ausfallsicherheit haben, musste man dies selbst mitbedenken bei der Architektur der Infrastruktur. Kubernetes setzt im Gegensatz dazu auf einen Zusammenschluss von mehreren Servern, einem sogenannten Cluster. Während wir bei Docker lediglich Container erstellen und diese verwalten konnten, können wir mit Kubernetes nun festlegen, wie der Soll-Zustand dieser Container auszusehen hat. Kubernetes kümmert sich im Hintergrund um das Erreichen dieses Zustandes, was auch immer dafür notwendig ist. Fällt nun ein Server des Clusters aus, erkennt Kubernetes, dass der Soll-Zustand der Dienste auf diesem Server nicht mehr erreicht ist.

Beispiel: Wir haben definiert, dass genau eine Instanz eines Webservers existieren soll. Fällt dieser Webserver nun aus, da er auf dem ausgefallenen Server lag, haben wir keine erreichbare Instanz mehr. Kubernetes justiert nach und erstellt eine neue Instanz des Webservers auf einem noch erreichbaren Server, sodass die Webseite wieder für alle erreichbar ist.

Das ganze passiert vollkommen ohne Zutun eines Menschen, eine ziemliche Arbeitserleichterung also!
Außerdem überwacht Kubernetes permanent, ob noch alle bereitgestellten Dienste zuverlässig funktionieren. Ist ein Webserver zum Beispiel nicht mehr erreichbar, da der Prozess eingefroren ist, wird er kurzerhand einfach neu gestartet. Auch das vollkommen automatisch!

In der Praxis bedeutet dies, dass wir in Zukunft bei unseren Infrastruktur-Diensten eine (hoffentlich) deutlich bessere Zuverlässigkeit erreichen können, die mit deutlich weniger Arbeit für uns verbunden ist.

Doch wie sieht das nun mit den Minecraft-Servern aus, bisher wurde nur von Infrastruktur-Diensten gesprochen?

Unsere Minecraft-Server haben wir bisher direkt auf den Servern und ohne Container betrieben und durch eigens entwickelte Software verwaltet. Um auch in diesem Bereich in Zukunft von mehr automatischen Systemen profitieren zu können, setzen wir auch hier auf Containerisierung! Dies ermöglicht uns in Zukunft zum Beispiel eine deutlich einfachere Übersicht über alle bestehenden Server sowie deren Konfiguration, Zustand und Metriken. Ebenfalls können wir in kürzester Zeit neue Server anlegen, was in der Vergangenheit immer ein mühseliger Prozess war. Aktuell können wir leider jedoch noch keinen Gebrauch von einem automatischen Verschieben eines Minecraft-Servers auf einen anderen Server im Falle eines Ausfalls machen, da die Anforderungen an die Hardware bei dieser Nutzung für uns zur Zeit nicht rentabel umsetzbar sind.


Soviel erstmal zu einem „kurzen“ und groben Überblick über unsere genutzten Systeme.

Bleibt gespannt auf die nächsten Beiträge dieser Serie, in denen es um weitere Aspekte unserer Infrastruktur gehen wird.

Ein kleiner Spoiler vorab: nicht alles ist so einfach wie oben dargestellt, sodass wir schon früh mit den ersten Problemen kämpfen mussten.

Bis dahin,

Euer MyFTB-Team!

20 „Gefällt mir“

Was ein schöner Moment der MyFTB Patrioten des MyFTB Netzwerkes!