News

Dev Blog #2 Server Umzug

Hey zusammen!
In diesem Dev-Blog soll es um unseren Server Umzug am 27.12.2022 gehen. Unser Ziel war es, die Server Performance von unserem Netzwerk zu steigern.

» Die Ausgangssituation:
Das Netzwerk lag vor dem Umzug auf 3 einzelnen Dedicated Servern, die mittels eines CloudSystems¹ zusammen geschaltet wurden. Leider gab es im CloudSystem mehrfach Memory leaks². Durch diese Memory leaks konnte das CloudSystem keine neuen Server starten, da der Verfügbare Arbeitsspeicher von dem Server voll war. Dadurch ist es öfters zu Abstürzen gekommen. Neben des Problems mit dem CloudSystem, gab es sehr starke Probleme bei der Verbindung zum Netzwerk, da einige Fehlkonfiguration bei der Übertragung existiert haben. Dies hatte zur Folge dass man oft einen sehr hohen Ping; 100 ms+ auf dem Netzwerk hatte.

» Die Aufräumarbeiten:
Am 16.12. haben wir uns dazu entschieden die Server und unser CloudSystem hinter uns zu lassen, um euch ein besseres Spielerlebnis zu bereiten. Eine solche Umstrukturierung ist weitaus komplizierter, als man sich das am Anfang vorstellen mag. Wir besaßen insgesamt 21 Systeme, die Abhängig von der bisherigen Cloud waren. Somit mussten im Zuge des Cloudwechsels alle 21 Systeme umgeschrieben werden. Uns war klar, dass diese Veränderung viele Nächte und sehr viel Kaffee beansprucht. Wir haben an dem Tag angefangen, wo uns die neuen Server zur Verfügung standen. Oft schläft man erst eine Nacht drüber bei solchen Entscheidungen, aber dafür war keine Zeit. Bereits am 16.12. um 21:29 haben wir unsere Webseite auf einen neuen, stabileren Webhost umgezogen und uns dort breitgemacht. 

Es hat insgesamt 10 Tage gebraucht, um alle Systeme für den Wechsel vorzubereiten, doch das war nur die halbe Arbeit. In der heutigen Zeit ist so gut wie jedes Netzwerk mindestens einmal Opfer eines DDos Angriffs³ geworden. Also musste eine gute Strategie für unser Netzwerk her, um unsere Daten und auch die Server zu schützen.  Wir haben uns zusammengesetzt und unseren gesamten Traffic vom Netzwerk geplant und einen geregelten Traffic-Verkehr mittles Chain ermöglicht. Somit kommen die “guten” Daten rein und die “Bösen” bleiben draußen. Die Tage sind wie im Fluge an uns vorbei gegangen und immer wieder ist der 27.12. vor unserem mentalen Auge, wie eine Push Nachricht, aufgeploppt. 

  • » Der Status Quo:
    Wichtige Serverkomponenten sind nun in dem System, in das sie auch rein gehören – im CloudSystem. Die Verbindung zum Netzwerk liegt standardmäßig unter 50 ms und die kleinen Streifenhörnchen flitzen nun noch schneller durch den Wald von Demeter, da die einzelnen Server performanter geworden sind. Aber darauf Ruhen wir uns nicht aus! Unser Netzwerk hat nun die Möglichkeit sich selber zu Skalieren. Dies bedeutet, dass innerhalb von wenigen paar Sekunden ein neuer Demeter Server existert und wie gewohnt genutzt werden kann, aber auch nur solange, wie er gebraucht wird.

Euer Eternal-Core Development Team

¹ Ein CloudSystem verwaltet mehrere Java Prozesse, wie zum Beispiel Minecraft Server. Falls benötigt weist das CloudSystem einen untergeordneten Prozess an, einen neuen Minecraft Server zu starten und registriert ihn an den benötigten Stellen.

² Speicherleck (englisch memory leak, gelegentlich auch Speicherloch oder kurz memleak) bezeichnet einen Fehler in der Speicherverwaltung eines Computerprogramms, der dazu führt, dass es einen Teil des Arbeitsspeichers zwar belegt, diesen jedoch weder freigibt noch nutzt.

³ Denial of Service bezeichnet in der Informationstechnik die Nichtverfügbarkeit eines Internetdienstes, der eigentlich verfügbar sein sollte. Häufigster Grund ist die Überlastung des Datennetzes.

Chains sind Verkettungen von Regeln, welche mit jedem IP-Paket abgearbeitet werden.