Fotografie Blog

von Frank Tegtmeyer

           

JAMstack und mein Blog (Teil 1)

JamStack

Ich habe lange Zeit an der Technik meines Blogs gefeilt. Inzwischen ist ein Stand erreicht, mit dem ich sehr zufrieden bin. Für Interessierte hier die Beschreibung der technischen Hintergründe.

Artikel eins von drei: Gründe für den Wechsel von Wordpress

Übersicht

Anfänge mit Wordpress

Mein Provider bietet ein 1-Klick-Setup für Wordpress an, das ich irgendwann einmal ausprobiert habe. Nach ein paar Versuchen war ich davon angetan, wie leicht es ist Artikel zu verfassen und diese in gutem Design zu präsentieren.

Da ich schon einige Artikel auf Lager hatte, habe ich meinen Blog irgendwann live geschaltet, obwohl mir wegen Wordpress nicht ganz wohl war.

Wordpress und das zugrundeliegende PHP haben eine lange Historie von Sicherheitsproblemen, die die Übernahme oder Zerstörung von Blogs leicht machen. Genau das habe ich auch bei einigen Bekannten erlebt, die Wordpress-Blogs betrieben.

Je mehr Arbeit ich in den Blog steckte, desto wertvoller und schützenswerter wurde natürlich der Inhalt. Zudem sammelten sich im Laufe der Zeit immer mehr Plugins an, die irgendwelche kleinen Aufgaben erledigten und bei denen es schwierig wurde, den Überblick zu behalten. Was einfach anfing, wurde also immer schwieriger statt (wie es normal wäre) andersherum.

Wordpress logo

Nicht falsch verstehen: Wordpress ist vergleichsweise einfach zu benutzen und bietet ein hervorragendes Ökosystem an Templates, Themen, Plugins und Diensten. Es gibt eine Menge Anwendungsfälle, die Wordpress interessant machen. Für meinen Anwendungsfall überwogen nach einer Weile die Probleme.

Hier einige der Probleme die mich bewogen, nach einer Alternative zu suchen:

  • Update-Hölle
    Die ständigen Updates für Wordpress und Plugins machten eine ständige Überprüfung der Funktionsfähigkeit des Blogs notwendig. Mehrfach wurden Funktionen durch automatische oder manuelle Updates ausser Kraft gesetzt. Ich habe irgendwann mehr Zeit damit verbracht, das Wordpress-Setup zu pflegen, als Artikel zu verfassen. Updates zu verzögern oder zu unterlassen ist wegen der Sicherheitsproblematik nicht ratsam.
  • Fehlendes Vertrauen
    Ich hatte kein Vertrauen zu den Backup-Lösungen. Bei einem Restore bin ich in das Problem gelaufen, dass zwar die Datenbank wieder hergestellt wurde, die Media-Files wurden aber vom Backup gar nicht erfasst, was einer Bankrotterklärung für eine Backup-Lösung gleichkommt. Zum Glück hatte ich den Blog noch in einer Kopie, so dass ich die Daten von dort wieder herstellen konnte.
    Nach dieser Erfahrung habe ich die verschiedensten Dinge manuell gesichert, unter anderem auch Daten und Einstellungen der diversen Plugins. Eine immense und idiotische Arbeit. Aber wie gesagt - Vertrauen zu Backup-Lösungen hatte ich nicht mehr.
  • Erwartungen nicht erfüllt
    Die Wordpress-Themen versprechen eine Trennung von Inhalt und Design - in der Praxis sieht es damit leider schlecht aus. Als ich einmal ein Thema wechseln wollte, waren eine Menge Anpassungen notwendig, bis der Blog wieder lief.
  • Alles dynamisch - wozu?
    Der Blog war ziemlich langsam, wofür zum einen der Seitenaufbau und zum anderen die dynamische Generierung der Seiten verantwortlich waren.
    Den Problemen durch die dynamische Generierung kann man durch komplexe Caching-Mechanismen entgegenwirken, sowohl auf der Serverseite als auch über Proxy-Provider wie zum Beispiel CloudFlare. Das ganze ist aber schwierig zu handhaben und immer ein Kompromiss.
    Die Serversoftware selbst belastet den Server des Providers - jeder Seitenaufruf setzt eine Kaskade von Berechnungen in Gang, die auf der Maschine die Seiteninhalte generieren. Da auf den Servern des Providers viele Kunden aktiv sind, erhält man nur einen Bruchteil der Rechenleistung - dementsprechend langsam ist die Seitengenerierung.
    Wenn man dann in seine Überlegungen noch einbezieht, dass die Seiten vielleicht ein- oder zweimal im Monat verändert werden, macht dieses Verfahren für meinen Blog überhaupt keinen Sinn.
  • Komplexer Seitenaufbau und große Datenmengen
    Der zweite Punkt war ebenso störend, vor allem im Hinblick auf den wachsenden Anteil der mobilen Nutzer meiner Seite. Ich kann zwar nicht verstehen, warum man sich das antut und Blogs auf dem Mobiltelefon liest, aber die Realität ist, dass es gemacht wird und das in zunehmendem Maße.
    Mobile Nutzer haben oft langsame Verbindungen, sei es weil ihr Datenvolumen für LTE aufgebraucht ist, weil sie in einer schlecht versorgten Gegend sind oder weil sie zum Geld sparen offene Hotspots benutzen, die manchmal weniger Datendurchsatz als Egde bieten.
    Mein Blog sollte also zum einen Seiten haben, die auf Mobilgeräten gut anzeigbar sind und zum anderen wenig Zusatzdaten übertragen, die nichts mit dem Inhalt zu tun haben. Die üblichen “schicken” Wordpress-Themen bieten das nicht unbedingt.
  • Sicherheit
    Wordpress und das zugrunde liegende PHP haben bezüglich Sicherheit nicht den besten Ruf und ich kenne mehrere Leute, deren Wordpress-Seite schon gehackt wurde. Dass ich auf so etwas keine Lust habe, versteht sich von selbst. Natürlich ist jede Software irgendwo angreifbar. Webserver, die heutzutage im Einsatz sind, sind aber inzwischen so ausgereift, dass die meisten Angriffsmöglichkeiten eliminiert wurden. Wenn man also auf PHP und Wordpress verzichten kann, reduziert man die Angriffsmöglichkeiten enorm. Auch die Anfälligkeit gegen Denial of Service Angriffe wird reduziert, wenn die teuren Berechnungen beim Aufbau einer Wordpress-Seite wegfallen.
  • Nur online möglich
    Will man Änderungen an seinem Blog vornehmen bzw. neue Artikel schreiben, ist das nur direkt auf dem Server möglich - natürlich braucht man dazu auch eine Internetverbindung. Sitzt man irgendwo in der Prärie auf einem Bauernhof und will den Artikel schreiben, muss man das mit einer anderen Software erledigen und dann später in das Wordpress-System übertragen. Das ist mühselig und aufwändig. Ich habe z.B. lange Zeit während der Fahrt zur Arbeit an Artikeln gearbeitet (im Bus) und das war ein Punkt, der mich immer gestört hat.
  • Zusammenarbeit
    Wordpress bietet zwar Workflows, die die Zusammenarbeit mit anderen Autoren ermöglichen, jedoch ist es dabei schwierig, Änderungen zu verfolgen. In den meisten Fällen dürfte das keine Rolle spielen, bei mir aber unter Umständen ja.
  • Staging Site schwierig
    Wordpress bietet die Möglichkeit beim Erstellen von Artikeln eine Vorschau anzusehen. Das ist jedoch nicht für die gesamte Webseite möglich - will ich z.B. das Thema austauschen muss ich die gesamte Webseite neu aufsetzen, die Änderungen durchführen und testen und dann die bestehende Webseite ersetzen. Sehr aufwändig, so dass man sich das zweimal überlegt, ob es notwendig ist.

Für eine Band, in der ich Bass spiele, hatte ich schon eine Webseite erstellt, die mit einem Webseiten-Generator erzeugt wurde und nur statische Websiten enthielt.
Statische Webseiten eliminieren viele der oben genannten Probleme. Für die Pflege braucht man ein System, das die Generierung der HTML-Seiten übernimmt. Im kommerziellen Bereich gibt es z.B. große Content-Management-Systeme die genau so arbeiten. Ich hatte mich damals für webgen entschieden, ein Generierungstool das aus Textdateien in verschiedenen Markup-Sprachen (z.B. Markdown) eine Webseite mit statischen HTML-Seiten erzeugt.
So richtig warm geworden bin ich mit webgen allerdings nie.

Die Schwierigkeiten damals waren, dass webgen eine sehr kleine Nutzerbasis hatte. Zudem waren viele Konstrukte eng an die Programmiersprache geknüpft, in der webgen geschrieben war (ich glaube Ruby). Das Tool war eindrucksvoll, aber der Lernaufwand war ziemlich hoch.

Die erzeugten Seiten habe ich über ein Synchronisierungstool auf den Webserver hochgeladen, um nicht jedesmal alle Seiten übertragen zu müssen. Auf dem Mac habe ich dafür das Programm ForkLift eingesetzt, das noch ein wenig an den Norton Commander erinnert (für diejenigen, die das noch kennen). Forklift kann Verzeichnisse auch über FTP oder SFTP abgleichen.

Die Quelltexte habe ich damals schon in git verwaltet - ein verteiltes Sourcecode-Management-System, das verteiltes Arbeiten und Verwalten der Historie eines Projekts ermöglicht. Für ein bequemeres Arbeiten setze ich seit langem SmartGit ein.

Für meinen Blog habe ich mich dann nach anderen Möglichkeiten umgesehen und da gibt es inzwischen so eine reiche Auswahl an Generatoren, dass es schwer fällt, einen davon auszuwählen. Entschieden habe ich mich für Hugo. Dazu dann mehr im nächsten Artikel.

Newsletter

Wenn Sie über Neuigkeiten auf meinem Blog auf dem Laufenden bleiben wollen, bestellen Sie einfach meinen Newsletter. Ich verspreche, dass ich noch weniger Zeit habe als Sie - Sie werden also nicht mit E-Mails bombardiert ;-)

Keine Artikel verpassen!

* Pflichtfeld