Mittwoch, 18. November 2015

Warum statische Website Generatoren das nächste „Große Ding“ sind


In seinem bemerkenswerten Beitrag „Why Static Website Generators Are The Next Big Thing“ legt Mathias Biilmann Christensen dar, welche Vorteile statische Website Generatoren gegenüber dynamischen Content-Tools haben und warum sie aus seiner Sicht „The Next Big Thing“ sind. Wir von CONTENS entwickeln seit mehr als 16 Jahren Content Management Systeme für die einfache Erstellung von performanten, statischen Websites und können Mathias‘ Einschätzung voll und ganz bestätigen.


Das Web begann statisch und es war gut.

Tim Berners-Lees erste Website für das World Wide Web war eine statische Seite mit einer Reihe von Links. Die ersten Browser waren simple Programme, die HTML Seiten von einem Server aufriefen und darstellten. Nutzer konnten in diesen Dokumenten navigieren, in dem sie auf Links klickten, die wiederum neue Seiten anzeigten.

Mit der Entwicklung des Webs wurden die Anforderungen an Websites anspruchsvoller, so dass dynamische Websites immer populärer wurden. Während das Design und das Layout über HTML abgebildet wurden, kamen die Inhalte häufig aus Datenbanken. Bei jedem Aufruf werden dabei Inhalte aus der Datenbank in das HTML geladen und dem Nutzer angezeigt. Dieses Vorgehen ist bei personalisierten Angeboten sinnvoll, wenn sich jeder Nutzer genau die Inhalte anzeigen lassen kann, die ihn besonders interessieren. Da jedoch die wenigsten Firmenwebsites personalisierte Inhalte anbieten, sind dynamische Lösungen oftmals nicht notwendig. Denn dynamische Lösungen bringen eine Reihe von unerfreulichen Problemen mit sich.

Probleme dynamischer Anwendungen 

Dynamische Lösungen sind in der Regel erheblich langsamer als statische Anwendungen, selbst wenn viel Aufwand in die Optimierung investiert wird. In seinem Test konnte der Autor nachweisen, dass eine dynamische Seite selbst bei massiver Optimierung bis zu sechs Mal langsamer (!) ist als eine vergleichbare statische Seite. Der Aufbau einer Datenbankverbindung kann fehlerhaft sein und in einem Datenbankverbindungsfehler enden, so dass eine Seite evtl. nicht angezeigt würde.


Außerdem sind dynamische Lösungen erheblich anfälliger für Hackattacken. Schätzungen zufolge waren nach einem Hackerangriff vor wenigen Monaten 12 Millionen Drupal Websites betroffen, die innerhalb kürzester Zeit dringend gepatcht werden mussten. Gerade die Verbreitung macht dynamische Websites interessant für Hackerangriffe. Die Hacker wissen, dass nicht alle Website-Betreiber ihre Software-Versionen regelmäßig aktualisieren sowie ihre Server sorgfältig absichern. Kleine Fehler können daher enorme Auswirkungen haben, die Hacker sehr gerne zu ihrem Vorteil ausnutzen.

Auch die Skalierung von dynamischen Lösungen ist komplex und erfahrungsgemäß sehr kostspielig. Um die Performance-Nachteile in den Griff zu bekommen, benötigen dynamische Lösungen in der Regel anspruchsvolle und komplexe Caching-Mechanismen. Caching und insbesondere die Cache-Invalidierung sind bei dynamischen Anwendungen sehr intensive Herausforderungen, die viel Wissen und Aufmerksamkeit erfordern. Bei den meisten dynamischen Websites, welche Datenbankanbindungen eigentlich nicht benötigen, muss daher viel unnötiger Aufwand in Kauf genommen werden, damit die Website einigermaßen akzeptabel performt.

Vorteile statischer Anwendungen 

Anwendungen, die statische Webseiten erzeugen, sind bei den genannten Problemen klar im Vorteil. So sehr sich das Web seit seiner Entstehung geändert hat, ein Anspruch der Anwender ist seitdem immer gleich geblieben – oder hat sich sogar noch verstärkt: Der Wunsch nach maximaler Performance. Niemand wartet gerne, bis eine Seite die Inhalte geladen hat. Im Zweifelsfall wählt man den nächsten Anbieter, dessen Seite sofort lädt.

Statische Websites sind hier klar im Vorteil. Mit deutlich weniger Aufwand bieten sie eine wesentlich bessere Performance als dynamische Anwendungen. Der Grund ist einfach: die statische Website liegt fertig auf dem Server und ist bei Aufruf sofort verfügbar. Egal, ob von einem oder von 100 Nutzern. Höhere Zugriffszahlen lassen sich einfach durch stärkere Webserver bedienen. Eine dynamische Webseite dagegen muss bei jedem Aufruf aus den Inhalten der Datenbank und dem HTML-Gerüst erstellt und dann bereitgestellt werden. Bei steigenden Zugriffszahlen muss nicht nur der Webserver sondern auch der Datenbankserver skaliert werden. Das ist möglich, aber mit zusätzlichem Aufwand verbunden.

Dynamische Lösungen bieten damit bei normalen Firmenwebsites in den allermeisten Fällen keinen Vorteil, insbesondere nicht für den Nutzer. Denn in der Regel ändern sich Websiteinhalte nicht so häufig, dass es sinnvoll wäre, sie bei jedem Aufruf neu aus der Datenbank zu laden – mal abgesehen von volatilen Daten wie Börsenkursen oder sehr umfangreichen Suchergebnissen. Typische Inhalte einer Corporate-Website profitieren viel mehr von einer statischen Lösung, denn sie zeigen solange die gleiche HTML-Datei an, bis diese aktualisiert wurde. Und das mit bester Performance.

Warum werden statische Anwendungen immer beliebter? 

Anwendungen zur Produktion statischer Websites erleben seit einiger Zeit eine Renaissance. Mathias Biilmann Christensen dokumentiert in seinem Beitrag eine starke Zunahme von statischen Generatoren auf Github und zugleich einen schnellen Anstieg von positiven Bewertungen für diese Tools. Auch auf Google Trends lässt sich ein kräftiges Wachstum von Suchen nach „static site generator“ beobachten. Doch warum ist das so? Und warum gerade jetzt?


Der Wunsch nach besserer Performance ist sicherlich ein wichtiger Grund. Denn nie war Performance wichtiger als heute. Doch es gibt weitere gute Gründe für diesen Trend.

Zum einen stellen immer mehr Unternehmen fest, dass die hohen Aufwände zum Betrieb einer performanten, dynamischen Website unnötig sind, insbesondere dann, wenn keine Anforderungen für dynamische Datenbankanbindungen bestehen. Hinzu kommen schlechte Erfahrungen durch Hackerangriffe und der Wunsch, weniger verwundbar zu sein.

Zum anderen hängt der Trend zu statischen Lösungen mit den vielfältigen Möglichkeiten moderner Browser zusammen. Browser können heutzutage vollwertige Webapplikationen laufen lassen (die wiederum Datenbankabfragen übernehmen können), externe Aufrufe gegenüber Schnittstellen (APIs) ausführen, Daten lokal zwischenspeichern, Streaming-Server ansprechen und sogar Peer-to-Peer-Verbindungen mit anderen Browsern aufbauen. Moderne Browser übernehmen immer mehr und anspruchsvollere Aufgaben, für die früher dynamische Anwendungen erforderlich waren. Umschaltfunktionen, Formularvalidierungen oder Filter auf einer Website, die früher Datenbankzugriffe erforderlich gemacht haben, lassen sich heute einfach im Browser abbilden. Kurz: Browser von heute machen dynamische Anwendungen von früher oftmals überflüssig.

Ein weiterer Grund liegt in der günstigen Verfügbarkeit und der zunehmenden Verbreitung von Content Delivery Networks (CDN), wie Amazon AWS, Fastly oder CloudFlare. Statische Websites können im Vergleich zu dynamischen Lösungen deutlich einfacher über ein CDN bereitgestellt und gegenüber Nutzern aus aller Welt über lokale Server vor Ort verfügbar gemacht werden.

Was fehlt? 

Nach Ansicht von Mathias Biilmann Christensen ist das größte fehlende Puzzlestück eine brauchbare Inhaltsbearbeitung für statische Websites für nicht-technische Anwender. Die direkte Bearbeitung von HTML-Code sei zwar für Entwickler nahe am Idealzustand, für nicht-technische Anwender jedoch kaum zumutbar. Der Grund dafür ist, dass die meisten aktuellen Generatoren nur Markdown Unterstützung anbieten – aber keine WYSIWYG Editoren wie z.B. im CONTENS CMS. Markdown ist eine vereinfachte Auszeichnungssprache, die gerne von technikaffinen Anwendern genutzt wird, für Redaktionen ohne Technik-Background jedoch kaum geeignet ist.


Redakteure in CONTENS erstellen und bearbeiten Inhalte in einer Live-Ansicht ihrer Website oder ihres Intranets. Mit einem Doppelklick lassen sich Inhalte öffnen und in übersichtlichen Strukturen einfach verändern. Inhaltselemente wie Artikel, News und Bilder können sogar mehrfach als Instanzen und als Kopie verwendet werden. Inhalte und Seiten lassen sich per Drag & Drop oder Copy & Paste unkompliziert bewegen. Alle Funktionen stehen dabei in einem modernen Browser wie Firefox, Chrome oder Internet Explorer zu Verfügung. Einige Funktionen lassen sich sogar mit bekannten Tastaturkürzeln anwenden, wie zum Beispiel das Speichern mit Strg+S. Es besteht kein Bedarf, einen Fat Client zu installieren und zu supporten. Außerdem lassen sich die Inhalte als performante statische Website, hybride Sites (also statische Sites mit eingebundenen dynamischen Anwendungen) und bei Bedarf auch volldynamische Sites veröffentlichen.

Das Fazit 

Statische Anwendungen erfüllen wesentliche Anforderungen für modernes Web Content Management besser als dynamische Tools. Sie bieten seit jeher klare Vorteile in Bezug auf Performance, Skalierung und Caching, und sind damit in der Regel günstiger zu betreiben als dynamische Anwendungen. Moderne Browser übernehmen heutzutage immer mehr Funktionen, die früher dynamische Anwendungen erforderlich gemacht haben. Dieser Trend wird sich weiter fortsetzen und die Notwendigkeit von volldynamischen Lösungen weiter reduzieren.

Darum CONTENS 

Mit dem CONTENS CMS lassen sich sowohl performante statische als auch dynamische Seiten (sowie Mischformen) generieren. Redakteure erstellen ohne Programmierkenntnisse Inhalte mit einem sehr mächtigen Editor, der einen Word-ähnlichen Komfort bietet. Standard-Textauszeichnungen (wie fett, kursiv, unterstrichen,…) stehen ebenso zur Verfügung wie individuelle Formatvorlagen aus den Styles der Website. Verlinkungen auf interne Seiten und Dateien lassen sich in einem übersichtlichen Dialog unkompliziert anlegen. Bereits bestehende Inhalte, wie zum Beispiel Bilder, Downloads oder Artikel, können in den Editor einfach als Subobjekte eingebunden werden. Darüber hinaus bietet CONTENS auch eine Schnittstelle zum Content Delivery Network Akamai, die bei Änderungen auf Seiten automatisch den Cache invalidiert. Damit ist gewährleistet, dass neu veröffentlichte Inhalte immer direkt beim Nutzer ankommen – und nicht die im Cache gespeicherten, veralteten Inhalte.

Hier geht es zum Artikel „Why Static Website Generators Are The Next Big Thing

Keine Kommentare: