Angepinnt Dev-Diaries

      Dev-Diaries

      Willkommen im Dev-Diaries-Thread.

      Auf Wunsch im Discord, und ich halte die Idee nicht für Schlecht, möchte ich eine "Simple" Form eines Tagebuchs einführen, in dem die technische Entwicklung etwas näher erläutert wird. Hier sollen ein wenig die Probleme und Pläne erläutert werden. Das soll Transparenz schaffen. Ich versuche dabei zu viel Technisches Chinesisch zu vermeiden ;).

      Es sei gesagt das nicht alles hier drin, als Ankündigung zu verstehen ist und nicht alles was geschrieben wird auch zwangsläufig so passieren muss.

      Viel Spaß beim Lesen :)

      Maximilian
      aka Ace Industries

      by gallimathias with components of: reference

      #1 Update Strategie, warum dauert das so lange, Roadmap und neustes Update

      Neu

      In meinem ersten Tagebuch Eintrag möchte ich direkt mehrere Punkte erläutern und hoffentlich etwas Licht ins Dunkel bringen.

      Update Strategie

      Als ersten Punkt möchte ich die aktuelle Update-Strategie näher erläutern. Evtl. ist es jemanden schon aufgefallen aber wir werden in Zukunft viele kleine Updates haben, um technisch voranzukommen, anstelle eines gigantischen Updates. Die Begründung ist recht simpel, ich bin genau ein Typ und auch wenn ihr alle Mithelft wir werden niemals das Forum so durchtesten können, das wir zu 100 % alle Fehlerchen finden. Machen wir zukünftig lauter kleine Häppchen ist jedes Häppchen viel einfacher zu Testen, sollte was schiefgehen lässt fallen wir mit einem viel kleineren schritt zurück. Kleinere Updates, kleinerer Impact. Ja es geht seehr viel langsamerer voran aber dafür sehr viel sicherer. Ein sehr gutes Beispiel warum ein gigantisches Update keine gute Idee ist, zeigt das aktuelle Update aber dazu später mehr. Vielleicht wäre auch noch bei dieser Strategie positiv zu vermerken das man viel eher auf die Community bei den Änderungen reagieren kann.

      Das aktuelle Update

      Was ist aktuell auf der Beta Seite so anders? Es ist vermeintlich eine kleine Änderung im Hintergrund, die Auswirkungen sind aber gigantisch. Vielleicht fange ich hierfür mal damit an wo wir herkommen. Das bisherige Forum ist sehr traditionell aufgebaut:



      Wenn ihr euren Browser öffnet und auf virtual-states.de surft kommt die Nachricht erstmal bei einem sogenannten Web-Proxy an, dieser entscheidet anhand der Adresse zu welchem Dienst oder welcher Webseite die Anfrage weitergeleitet wird. Im Falle des Forums geht das an einen weiteren “Proxy“ der entweder direkt mit einer Datei antwortet (Bilder z.b.) oder ihm falle von PHP (erkennbar, wenn die URL mit .php endet) an den PHP-dienst. Dieser kann zum einen auf die Dateien zugreifen um damit zuarbeiten und auch auf die Datenbank des Forums um mit den Daten zu arbeiten. Er interpretiert den Code der PHP Dateien und das erzeugte Ergebnis wird über die Proxy’s an euch ausgeliefert.

      Sehen wir uns an wie die Zukunft aussieht:



      Wenn wir uns weiterentwickeln wird das Forum eine sogenannte SPA Seite sein (Single Page Application) das klingt komplizierter als es ist. Z.b. YouTube, Gmail und viele andere Webseiten folgen dieser Architektur. Hierbei ist im Wesentlichen die Auslieferung von statischen “Dateien“ und flexiblen “Daten“ getrennt. Beim ersten Besuch der Seite wird genauso wie früher eine Anfrage an den Web-Proxy gegeben, der in dem Fall die UI also den sichtbaren Anteil des Forums der Webseite ausliefert. Diese Dateien bleiben bei euch so lange bis ihr euren Browser Cache leert oder es eine neue Version des “Forums“ gibt. Alle Weiteren “Anfragen“ eures Browsers gehen dann am Proxy zur WebAPI, dieser Dienst kann die Daten aus der Datenbank abrufen und euch bereitstellen.

      Was sind nun die Vorteile, zum einen ist die sichtbare Oberfläche stärker von den Daten getrennt, das macht Weiterentwicklungen oder Änderungen per se erst mal einfacher. Dann muss im Gegensatz zu PHP nicht jedes Mal, wenn es eine Änderung gibt der Code immer neu interpretiert werden. Natürlich werden auch im alten Forum zum Teil Ergebnisse zwischen gespeichert aber das Forum sollte in summe trotzdem schneller Laufen als in der Vergangenheit. Ein weiterer Vorteil ist dadurch auch die Entlastung des Servers, es ist deutlich einfacher nur Daten bereitzustellen, als jedes Mal PHP neu zu berechnen, wie ihr euch vorstellen könnt. Natürlich gibt es nicht nur Vorteile, aber die Nachteile lassen sich gut ausgleichen.

      Bei unserer Transformation zu dieser neuen Architektur werden wir nun nach und nach dinge von Alt auf Neu schieben bis das Alte Forum verschwunden ist und nur noch das neue Forum existiert.

      Einer dieser Punkte ist schon länger aktiv, wir haben im aktuellen Forum bereits die WebAPI, hinzugekommen. Mit einem abgespeckten Funktionsumfang und sie wird aktuell nur vom PHP-Dienst direkt verwendet, aber sie ist tatsächlich schon da und erfüllt die ein oder andere kleine Aufgabe die unsere PHP Instanz aufgrund ihres hohen Alters aktuell nicht mehr erfüllen kann.

      Auf der Beta Website gehen wir nun einen Schritt weiter und bekommen quasi ein zweites Forum hinzu. Dort ist bereits die neue Weboberfläche in abgesteckter Form aktiv und zeigt die alte PHP Forums Webseite an. Wir haben quasi eine Website in der Website. Wen wir das aktiv schalten für das aktuelle Forum wird das aktuelle Forum zu legacy.virtual-states.de und die neue Weboberfläche wird zu virtual-states.de. Im Optimalfall bemerkt man erst einmal keinen Unterschied, bis auf die Tatsache das Forum einen Ladebalken bekommen hat.

      Warum dauert das so lange?

      Jetzt hat das auf der BETA Seite bisher ziemlich gut geklappt, bis mir eine klitzekleine Kleinigkeit aufgefallen ist, die aktuell das Update komplett blockiert. Nämlich alle Links auf der Beta Seite sind eigentlich kaputt. Das Problem ist, das diese neue Architektur etwas anders mit URLs umgeht. So wird z.b. aus virtual-states.de/index.php => virtual-states.de/legacy. Es gibt ja langfristig kein PHP mehr. Damit das alles funktioniert müssen jetzt aber alle Links von index.php umgeschrieben werden auf legacy. Alle dinge die nur innerhalb des “alten“ Forums aber nicht des neuen Forums laufen müssen von virtual-states.de zu legacy.virtual-states.de geändert werden. Eine technische Lösung zu finden ist aus vielen Sonderfällen gar nicht mal so einfach.

      Und hier kommen wir zum Eingang beschriebenen. Der Fehler viel sehr spät auf, weil es gar nicht so einfach ist festzustellen was aktuell von legacy-beta.virtual-states.de oder von der nicht BETA Seite virtual-states.de kommt. Ich habe das Problem nur durch Zufall festgestellt, ansonsten wäre der Schaden auf dem echten Forum ziemlich schnell aufgefallen, aber hätte mir beim Updaten des Forums seehr viel Stress bereitet und ich hätte sogar zurückgemusst auf die Version zuvor. Ihr seht also das die Weiterentwicklung des Forums viele kleine Stolpersteine bereithält aber die kleinen Updates ermöglichen es uns eben sich dann auch nur auf solche kleinen Schäden zu konzentrieren.

      Was kommt als Nächstes?

      Jetzt versuche ich natürlich erst mal dieses Update zu retten, aber die nächsten 3 Updates sind auch bereits in Planung. Ich versuche mal die Roadmap anzupassen.

      Update 2: ein Update mit weniger Einfluss, im Hintergrund versuchen wir die API zu aktualisieren und ihr weitere Funktionen zu geben, so wie kleinere bekannte Fehler zu beheben. Unter anderem soll bereits teile der zukünftigen Authentifizierung hinzugefügt werden

      Update 3: Wieder ein update mit nicht so viel visuellem Impact aber sehr entscheidend. Das alte Forum wird das neue Forum Authentifizieren. So wird dafür gesorgt das neue Forum auch weis, wer ihr seid. Das ist wichtig für alle weiteren schritte.

      Update 4: Wir versuchen das “erste“ UI Element in die neue Welt zu schieben, das wird sehr wahrscheinlich die Leiste über dem Header Bild sein, also dort wo euer Profilbild ist, die Benachrichtigungen, die Suche etc.

      So ich hoffe das gab ein wenig Einblick in die Aktuelle technische Entwicklung und schafft etwas mehr Transparenz, ich würde mich sehr über Feedback oder Fragen freuen :)

      Euer,

      Maximilian
      aka Ace Industries

      by gallimathias with components of: reference
    • Benutzer online 1

      1 Besucher