Jump to content

Serverumstellung 25. Februar 2016


Gast fatel

Recommended Posts

Hallo Kameraden,

wie ihr unschwer bemerken konntet, haben wir die letzte Wartung zunächst verschoben und dann am heutigen Tage zusätzlich um einige Stunden ausdehnen müssen. Ich möchte euch an dieser Stelle einige Hintergrundinformationen geben und euch erläutern warum diese Wartung für uns unverzichtbar war und was sich im Hintergrund geändert hat.

Ausgangssituation

Es ist kein Geheimnis, dass wir für das Soldatenspiel auf AWS (Amazon Web Services) setzen. 

Im Falle von Soldatenspiel war es bisher so, dass die Serverstruktur mittels sog. EC2-Classic-Instanzen von Amazon abgebildet wurde. Wie der Name "Classic" vermuten lässt, ist diese Art des Hostings in die Jahre gekommen, so dass Amazon die Verwendung neuer Servertypen und Features für diesen Typ immer weiter einschränkt bzw. nicht erweitert. So ist es uns (bisher) beispielsweise nicht möglich gewesen bestimmte Servertypen zu verwenden, die besser auf unsere Bedürfnisse passen. Für die Interessierten unter euch, hier eine kleine Übersicht der "alten" Struktur: Mqk.png

 

Umstrukturierung

Und gleich hinterher die "neue":

nIE.png

 

Es hat sich nicht viel verändert, oder? Das entscheidende Detail ist der grau markierte Bereich. Sämtliche Server befinden sich nun in einer sogenannten VPC. Dies ermöglicht uns unter anderem den Einsatz anderer Servertypen. Sowohl für die "normalen" Server als auch für die Datenbanken. 

Technik & Software

Darüber hinaus haben wir uns zu einem Wechsel der verwendeten Software auf sämtlichen Servern entschieden. Sowohl was den Webserver selbst betrifft als auch das verwendete Betriebssystem. (Für die Nerds unter euch: apache -> nginx, Amazon Linux -> Ubuntu)

Planung & Durchführung

Der Plan für einen reibungslosen Umzug sah vor, dass wir zunächst beide Systeme parallel betreiben und dann während der Wartung nur noch die Domains auf die neuen Load Balancer umlenken müssen. Wir haben uns Montag und Dienstag als Zeitraum zur Einrichtung der neuen Server gegeben, um dann entsprechend am Mittwoch während der gewohnten Wartung die Umstellung vornehmen zu können. 

Probleme

Im Laufe des Dienstagnachmittag haben wir leider die ersten massiven Probleme erfahren bzgl. dem Wechsel von Amazon Linux auf Ubuntu. Trotz einer Ausdehnung unserer Arbeitszeit bis in den Abend war es uns leider nicht möglich, besagtes Problem zu lösen. In der Hoffnung nach einer weiteren Nacht des "darüber Grübeln" eine Lösung zu erlangen, mussten wir leider Mittwochfrüh die Entscheidung treffen die Wartung zu verschieben, da wir keinen stabilen Betrieb auf den neuen Servern hätten gewährleisten können. Das war sozusagen der erste kleine "Rückschlag" in einem bis dahin sehr positiv verlaufendem Umzug. Wir konnten dann im Laufe des Tages mit der nötigen Ruhe auch alle Ungereimtheiten bereinigen. 

Die Wartung

Wir wähnten uns also für die Wartung gut vorbereitet und waren bis ca. 9:45 Uhr guter Dinge eine pünktliche Fertigstellung des Umzugs zu erreichen. Dann fielen uns die ersten zufälligen Serverfehler auf. So oder so ähnlich haben es vielleicht auch von euch einige erleben müssen: Y8W.png

 

Wir entschieden uns also zu einer Verlängerung auf unbestimmte Zeit, um das Problem zu untersuchen. Die Fehlersuche gestaltete sich als äußerst mühselig in Ermangelung an sinnvollen Ausgaben in unseren Log-Dateien. Zunächst bemerkten wir folgenden Fehler: 

IpguAZ.png

Die Ursache hierfür kann so ziemlich überall liegen. Die Verbindung zum Server wird einfach abgelehnt. Nach einer sehr mühsamen Erweiterung der Ausgaben des Servers veränderte sich der gezeigte Fehler:IDjlj1.png

Die Aussagekraft ist allerdings leider ähnlich schlecht. Zur Lösung führte letztlich folgende (wiederum erweiterte) Ausgabe, die sich im Sekundentakt wiederholte:

GCBsLz.png

Der fpm-Dienst wurde noch vor Auslieferung des Inhalts an den Nutzer beendet, was wiederum auf bestimmte CPU-Instruktionen zurückzuführen ist, die durch eine von uns kompilierte Bibliothek aufgerufen wurden. Leider werden diese Instruktionen nicht von unserem neuen Setup unterstützt, weshalb eine Neukompilierung der Bibliothek mit anderen Parametern nötig war. Durch diese Parameter werden die nicht unterstützten Befehle umgangen und der Betrieb funktioniert wie vorher. 

Fazit

Ein solcher Fehler ist auch mit sehr guter Vorbereitung kaum absehbar, da er sich tief im System verbirgt und noch dazu von einer nicht von uns selbst entwickelten Bibliothek verursacht wurde. Nur dank wiederholter Tests durch verschiedene Mitarbeiter ist es überhaupt aufgefallen, dass sporadisch Anfragen an den Server zu o.g. Fehler führten.

Insgesamt können wir eine reduzierte Antwortzeit der Server feststellen. Die Server antworten schneller, was sich auch in einem schnelleren Spielgefühl widerspiegelt.

Wir haben jetzt die Möglichkeit aus einem deutlich variableren Serverumfang zu wählen, so dass wir euch zu den unterschiedlichen Events mit den jeweils passenden Servern versorgen können. 

Darüber hinaus stellt die Verwendung einer VPC einen Zugewinn an Sicherheit für unsere Systeme dar.

Es tut uns leid, dass euch etwas Spielzeit abhanden gekommen ist, insgesamt sind wir aber der Auffassung, dass die Umstellung auf lange Sicht sowohl für uns als auch für euch ein Zugewinn sein wird. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Rookie locked und pinned this topic
  • Rookie unpinned this topic
Gast
Dieses Thema wurde für weitere Antworten geschlossen.
×
×
  • Neu erstellen...