+49(0)179 542 12 21

Statisch ist einfach zuverlässiger! - Die metapubisher Story

Warum wir die metapublisher-Plattform gebaut haben

Statische Seiten - für uns der Fels in der Brandung; Foto: Ingo Bläser

Als Onlineagentur haben wir von Anbeginn mit Content Management zu tun. Um die Jahrtausendwende waren dies zunächst wenige kostspielige Java-basierte Lösungen. Dann kamen php/MySQL-Systeme. In den frühen 2000er setzten wir erstmalig Typo3 ein und waren zunächst begeistert. Zwei Jahre später kam Wordpress dazu. Für die Erstellung von Shops haben wir auf Os-Commerce gesetzt, später auf Magento. Alles typische php/MySQL-Lösungen, welche die Seitenelemente in Echtzeit aus der Datenbank generieren und dabei durch Cacheing und Load Balancing unterstützt werden.

Wir konnten mit diesen Systemen sehr gut alle Projekte unserer Kunden realisieren. Auch mit umfangreichen System-Anpassungen, der Einrichtung von Mandantensystemen, Erstellung von PlugIns und/oder die An- bzw. Einbindung von Datenbankdiensten oder dynamischer Inhalte. Typo3 war über viele Jahre unsere Allround-Lösung in Sachen CMS. Wir haben damit auch rund 15 Jahre gute Erfahrungen gesammelt und sind der Typo3-Community für ihre Arbeit unendlich dankbar für alles. So wie wir auch allen anderen Machern Freier Software sehr dankbar sind, die ihre Arbeiten unter der GPL-Lizenz stellen.

Parallel zur Nutzung von Typo3 und Wordpress haben wir für kleine Projekte dabei immer auch noch statische Seiten genutzt. Ihre Zuverlässigkeit war dabei in jeder Hinsicht vorbildlich. Im Vergleich zu den Zwischenfällen bei dynamischen, datenbankbasierten CMS-Systemen gab es da - keine Ausfälle. Dies ist allerdings auch kein Wunder, denn eine HTML-Datei auf einem Webserver stellt vor allem für den Administrator eine "Banalität" dar, im Vergleich zu einem umfangreichen modernen CMS. Und das ist eigentlich der Komfort, den wir gerne hätten, wenn wir selbst wählen könnten.

Klartext: Was stört uns am php/MySQL-CMS?

Es fing damit an, dass wir feststellten, dass mittlerweile alles Nötige, was man für stabile statische Websites braucht um uns herum in Form von Freier Software längst zur Verfügung steht. Javascript-Librarys (jQuery u. Co), Bootstrap, Templates, Javascript-Frameworks wie node.js und Docker für die Administration und nicht zuletzt die für uns mittlerweile selbstverständliche Sourcecode-Hosting mit Versionsmanagement per Git-Repositorys. All das führte uns weg vom monolithischen Ansatz des klassischen CMS-Systemes hin zu einer Kombination freier Software, die am Ende einen Website-Generator antreibt um statische Seiten zu erzeugen. Natürlich kann man auch dann noch dynamische Inhalte in die Website einbringen. Die Möglichkeiten sind dieselben.

Es gibt da nun diese große Menge an schlanken Tools, die wir eigentlich nur noch zusammen setzen müssen. 
Die Auslöser, warum wir nach einer neuen Lösungen gesucht haben, waren folgende:

  • Häufige automatisierte Angriffe durch Bots u. Spam, was schwer verhinderbar ist u. wiederum Zeit kostet

  • Risiken durch Sicherheitslücken, permanenter Wettlauf zwischen Schadsoftware/Security-Updates und automatisierte oder auf bestimmte Systeme (bzw. Komponenten) zielende Angriffe, permanente Update-Notwendigkeit

  • Zusammenbruch des Datenbank-Servers bei zu hoher Nachfrage (Moment of fame/fail).
    Hohe Zugriffszahlen benötigen Skalierung, Load Balancing, Cacheing, etc.

  • Datenaustausch nur über PlugIns, die als „Flaschenhälse“ den Zugriff erschweren und den Datenaustausch verlangsamen

  • „Interne Syntax“ nötig, wie z.B. Typoscript und zusätzliche Template-Engine Sprachen (Templa Voila/Fluid)

  • Permanent wachsende Code-Mengen, die nur noch schwer durchschaubar sind (Quellcode ca. 1,5 Mio Zeilen)

  • Weiterentwicklung d. Systems unabhängig vom Websiteprojekt (CMS-Neuerungen nicht immer hilfreich)

Probleme bei der Einschätzung von Aufwänden für Anpassungen

Gerade der Umbau des Standard-Systems oder eines PlugIns stellt ein hohes Kostenrisiko dar. Klappt der Umbau in der geplanten Zeit oder gibt es unangenehme Überraschungen? Besteht mit dem umgebauten System oder PlugIn eine positive Prognose für weitere Kundenwünsche und einen sicheren Betrieb auf Dauer? Wie ist die Aktualisierbarkeit der angepassten Module? Da sich das darunter liegende Standard-System (wie z.B. Typo3 oder Wordpress) mitsamt PlugIns auch weiter entwickelt und aktualisiert wird, sind hier langfristige Prognosen schwierig. 


Zenit in Sachen Effizienz überschritten?

Mit neuen Anforderungen wie zum Beispiel Responsive Design oder der Einbindung von Social Media-Modulen wächst auch das Standard CMS permanent. Nicht immer in die Richtung, in die man es sich wünscht. Dabei ist es aus unserer Sicht mittlerweile gar nicht mehr nötig, alle Anforderungen mit nur einem System abzudecken und die Seiten aus einer Datenbank in Echtzeit zu generieren.

Schließlich gibt es doch so viele schlanke und gute Lösungen, für Frontend für Backend, für Datenbank und deren Anwendung... Und so begannen wir im Herbst 2011 intensiv darüber nachzudenken, wie unsere eigene Lösung aussehen könnte, wenn wir alle Freiheiten hätten.


Warum nicht einfach statische Seiten erzeugen und die auf einem Webserver ablegen?

Bingo, da haben wir doch den Website-Generator, der statische Seiten ausgibt anstatt Daten in Echtzeit auszuliefern.
Und den gibt es ja schon lange. Streng genommen lassen sich auch aus Typo3 oder Wordpress HTML-Seiten generieren, aber im Alltag ist es nicht sinnvoll, sie als Website-Generatoren zu verwenden. 

Wir haben den Markt der Website-Generatoren geprüft, Jekyll, Hugo, StaticGen etc.., viele tolle Lösungen, aber für unser Vorhaben schien uns trotzdem keiner der vorhandenen Kandidaten geeignet. Wahrscheinlich, weil wir als Webagentur zu genaue Vorstellungen haben. Unser Plan war so konkret, dass wir klar vor Augen hatten, welche Module wir uns für die Plattform wünschen.  In dieser Konstellation sahen wir sogar die Möglichkeit an unseren Maximalforderungen festzuhalten. 2012 begannen wir mit dem Bau von metapublisher. Zuerst nebenher, später dann auch für Kunden.


Unsere Maximalforderungen?

  • Statische Seite (stabile Basis, keine besonderen serverseitigen Anforderungen)
  • echte URLs, echte Dateistruktur (URL-Rewrite soll überflüssig werden)
  • Optimale (möglichst direkte) Anbindung an Datenbank-Systeme 
  • Starke Schnittstelle für Datenaustausch mit möglichst vielen Plattformen (REST-API)
  • Frontend-Editing und immer aktuelles Staging (strikte Trennung in Bearbeitungsseite, Vorschauseite u. Live-Seite)
  • Echte Versionskontrolle u. Dokumentation von Änderungen
    (mit kollaborativer Bearbeitung für beteiligte Entwickler via Git-Repositories)
  • Wiederverwertbarkeit von Frontend-Elementen (dank BEM-Frontend Framework)

Die „Dann auch richtig“ -Phase

Aber wenn wir schon selbst unsere Plattform bauen, dann wollen wir auch das Beste aus allen Welten.  Neben den Vorteilen der statischen Seiten wollen wir ein stabiles Datenbank-System, ohne Einbindung über "PlugIns". Und wir wollen ein Datenbanksystem, dass eine dezentrale Netzwerkstruktur erlaubt. Wir sind unserem Konzept treu geblieben, haben (bisher) alle Anforderungen umgesetzt und über 5 Jahre eine Plattform gebaut, mit der wir jetzt sehr gerne arbeiten und die besten Erfahrungen machen. Die Module haben wir so weit optimiert, dass wir sie schnell und einfach an spezifische Bedürfnisse anpassen können. Die Organisation der Kundenaccounts mit Docker Container ist ebenfalls eine deutliche Verbesserung.

Das Ergebnis: Unsere Kunden sind froh, weil die Bearbeitung mit Frontend-Editing viel einfacher ist. Sie müssen nicht mehr in einem Backend nach dem Ort der Seite oder des Objekts suchen. Und wir sind froh, weil für Entwickler die Komplexität des Projektes enorm reduzieren und der Code komplett übersichtlich bleibt und alle nötigen Werkzeuge zur Bearbeitung der Website bereit stehen.

Besonders attraktiv für uns: Die Stabilität statischer Seiten zusammen mit moderner Bearbeitung im Frontend

Langweilige statische HTML-Seiten sind den aktuellen Content Management Systemen der neuesten Generation in Sachen Geschwindigkeit und Sicherheit überlegen. Ihre Bereitstellung ist einfach, ein Browser kann sie sofort lesen, was die Anforderungen an den Server sehr stark reduziert. Um in das System einzubrechen, bedarf es eines hohen personellen und finanziellen Aufwands und sehr gezielten Vorgehens. Es gibt keine Angreifbarkeit durch typische Schadsoftware, die sich an Standardsysteme richtet. Diese ist für metapublisher wirkungslos. 

Im Jahr 2015 gab es zum Thema Website-Generatoren einen spannenden Artikel im Smashing Magazine [1.] der in Website-Generatoren die Zukunft sieht und uns in unserem Vorhaben nochmals bestärkte.

So bauten wir für unserer Plattform über die letzten Jahre alle Module, die man für Websites braucht: Slideshow, Blog-System, Tagging, Navigations- u. Seiten-Management und Einbindungen für Youtube, Soundcloud, Statistik, etc. Durch die replizierbare und abwandelbare Form herrscht für Kunden und uns jetzt der traumhafte Zustand, dass ein stabiles Fundament für weitere Kundenwünsche zu Grunde liegt. Da wir das gesamte Projekt buchstäblich "unter Kontrolle" haben, können wir produktiv sein und müssen nicht ständig irgendwelchen Sicherheitslücken hinterher rennen, Patches schreiben und Updates tagesaktuell zu halten. Stattdessen ist Platz für König Content.

Link: [1.] Artikel im Smashing Magazine über Website-Generatoren

Hier gibt es eine Beschreibung unserer metapublisher-Plattform.