Das Interesse am JAMstack wächst und viele Entwickler sind der Meinung, dass der JAMstack-Ansatz für die Webentwicklung, der in vielerlei Hinsicht schneller, sicherer und stabiler ist als der traditionelle Stack, die Zukunft des Webs darstellt. Aber er hat auch viele Nachteile und Probleme.
Im folgenden Artikel erkläre ich was ein JAMstack ist, wieso dieser entstanden ist und welche Vor- und Nachteile der Betrieb, insbesondere in Zusammenarbeit mit einem klassischen CMS wie WordPress mit sich bringt.
Definition: Was bedeutet JAMstack überhaupt?
Der früher als statisch bekannte Stack wurde von Matt Biilmann als JAMStack rebranded, weil der Begriff statisch nicht mehr wirklich das beschreibt, was eine moderne statische Website tun kann, die dank moderner Javascript- und CSS-Funktionen eben auch sehr dynamisch sein kann.
Wie kam es dazu, dass eine Alternative zum LAMP-Stack gesucht wurde?
Allerdings waren Änderungen an statischen Seiten dafür relativ unkomfortabel. Die meisten Webentwickler haben den HTML-Quelltext in einem Texteditor verändert und die geänderte Datei per FTP auf den Webserver übertragen. Einem Kunden ohne technisches Verständnis war es quasi unmöglich eine Webseite zu pflegen, an die gleichzeitige Arbeit mehrerer Personen an ein und der selben Seite war überhaupt nicht zu denken!
Die ersten dynamischen Funktionen wurden über das sogenannte Common-Gateway-Inferface, kurz CGI im Apache Webserver ermöglicht, der bereits seit 1993 in Arbeit war. So verschickten meine ersten Webseiten damals ausgefüllte Kontaktformulare noch über ein kleines PERL-Script via sendmail. Mit dem Erscheinen von PHP verbreitete sich diese Art der dynamischen Webseiten und schnell wurden Web-Content-Management-Systeme erschaffen, die bis heute noch auf dem LAMP-Stack, also Linux, Apache, MySQL und PHP laufen. Statt Apache kommt mittlerweile häufig der modernere NGINX zum Einsatz und anstelle MySQL darf es auch gerne mal eine MariaDB sein.
Ohne entsprechende Vorkehrungen löst in dieser Art von Setup jedoch jeder Seitenaufruf eine Kaskade von Datei- und Datenbankzugriffen sowie PHP-Funktionen aus, die die Generierung der Webseite immer langsamer machten. Um dieses Problem in den Griff zu bekommen, wurden auf den unterschiedlichsten Stufen des Stacks Caches implementiert, von Festplattencaches über Datenbank-Cache, Object Caches und FullPage Caches bis hin zu CDNs und dem lokalen Browser Cache wird so viel wie möglich abgelegt, damit erneute Auslieferung der selben Information beschleunigt erfolgen kann. Modernes WordPress-Hosting ist durch die vielen Caches immer komplexer im Betrieb und durch die Notwendige Invalidierung der Caches in einigen Fällen auch nicht mehr so viel schneller, spart aber CPU-Zeit auf dem Host-System.
Das größere Problem des aktuellen LAMP-Stacks ist aus meiner Sicht die Software-Sicherheit: Nahezu täglich erscheinen Sicherheitspatches, Updates oder 0-Day Exploits zu WordPress Plugins, Themes oder auch dem Core. Eine permanente Aktualisierung wird immer aufwändiger und kann bei kritischer Infrastruktur nur selten automatisiert und ohne anschließende Funktionskontrolle ablaufen.
Letztendlich ist auch noch die Skalierung von dynamischen Seiten eine große Herausforderung: Wenn Sie eine Website betreiben und es Lastspitzen oder gar einen Ddos-Angriff gibt, ist es definitiv eine Herausforderung, die Website schnell bzw. überhaupt am Laufen zu halten. Eigentlich sollte man sich doch über große Traffic-Zuwächse freuen und keine Angst haben, dass die Website dadurch zum Erliegen kommt.
Schauen wir uns also den JAMstack genauer an. Löst dieser die Probleme des LAMP-Stacks?
Geschwindigkeit: Jede Seite liegt also bereits vorgerendert im CDN, was die Auslieferung wirklich schnell macht! Das PHP muss nichts verarbeiten, keine Datenbank abgefragt werden, keine CPU muss etwas Rechnen und kein RAM kann überlaufen! Allerdings dauert dafür das Deployment sehr viel länger. Bei einer static architecture, also ohne Server-Side Rendering, werden sämtliche Seiten zum Zeitpunkt des Deployments generiert und auf dem CDN veröffentlicht. Das bedeutet allerdings auch, dass ein Redakteur nicht mal eben einen Tippfehler korrigieren kann.
Sicherheit: Ohne seitengenerierenden Verarbeitungsserver entsteht automatisch mehr Sicherheit! Denn es entfallen etliche anfällige Anwendungen der LAMP-Architektur. Wo normalerweise alles laufend gepatcht werden muss, von Datenbank und Betriebssystem des Servers über PHP und CMS bis hin zu Plugins und Themes. Diese Patches gibt es in der Welt von JAMstack einfach nicht, da JAMstack (zumindest static) 100% datenbank- und runtime-frei ist.
Skalierbarkeit: Wenn Sie nur statische Assets bereitstellen müssen, die keine serverseitige Verarbeitung erfordern, können Sie sie über ein weltweites CDN fast unendlich skalieren. Da dies viel weniger Ressourcen wie Rechenzeit, Strom und Kühlung verbraucht ist serverless Hosting noch dazu besser für die Umwelt.
Günstiger: Es gibt viele kostenlose oder kostengünstige Dienste für das Hosting statischer Websites. Diese Kosten können sich natürlich summieren, wenn man sehr viel Traffic hat, unter dem Strich sind die Kosten aber viel geringer als bei herkömmlichem Hosting!
Das klingt zu gut um wahr zu sein! Gibt es denn auch Nachteile?
Nach jeder Änderung auf der Webseite muss die gesamte Webseite neu generiert und auf das CDN gepusht werden. Das kann bei komplexen Webseiten sogar einige Stunden dauern, was häufige Veröffentlichungen oder schnelle Änderungen unmöglich macht. Das heißt: Wenn du eine Änderung auf einer Seite vornimmst, musst du deine gesamte Seite neu veröffentlichen und warten, bis sie fertig ist, bevor du eine weitere Änderung vornehmen kannst! Dadurch sind auch keine parallelen Arbeiten mehrere Autoren möglich. Außerdem kann die Seite keine dynamischen Elemente ohne Server oder API dahinter enthalten und lässt beispielsweise keine Kommentare oder Personalisierung zu.
Zudem kann man nicht mal eben Plugins im WordPress installieren, um der eigenen Seite neue Funktionen hinzuzufügen oder über einen PageBuilder eigene Layouts erstellen, wenn der statische Seitengenerator und die APIs für diese nicht vorbereitet wurden.
Die Kombination aus Headless CMS, Static-Site-Generator und Front-End mit clientseitiger Dynamisierung über APIs ist extrem komplex zu entwickeln. Es ist schwierig Entwickler mit den notwendigen Fähigkeiten zu finden und aktuell existiert noch ein sehr begrenztes Plugin- und Theme-Ökosystem. Im Gegensatz zu WordPress, wo es mehr als 50.000 Plugins und Millionen von Themes und fantastische Theme-Buildern wie Elementor gibt.
Damit Du einen Eindruck von der Komplexität bekommst, die der JAMStack mit sich bringt, schau Dir einfach mal das Tutorial Migrate Your WordPress Site to the Jamstack bei Netlify an.
Willst Du die Vorteile des JAMStacks einmal ausprobieren und trotzdem nicht auf den gewohnten Komfort einer WordPress Installation zu verzichten, hast Du derzeit drei Möglichkeiten:
1. WordPress als headless CMS mit Gatsby
Falls Du WordPress trotzdem unbedingt als Headless CMS nutzen willst, solltest Du Dir unbedingt mal das neue Projekt: Gatsby WordPress Themes anschauen. Damit kann man sehr viel Zeit sparen, indem man einfach ein fertiges Gatsby Theme basierend auf beliebten WordPress Themes verwendet.
Dieser Ansatz macht es sehr viel einfacher WordPress als headless CMS im JAMStack zu verwenden, um deine Seite zu verwalten und mittels Gatsby ein React-Frontend einzusetzen. Bislang gibt es zwar noch nicht viele Themes, aber das kann ich ja noch ändern.
Theoretisch kann man auch den Gatsby-Blog (eine vorgefertigte JAMstack-Website) auf Cosmic JS installieren und dann über einen Importer die vorhandenen WordPress-Beiträge importieren und die Webseite anschließend über Netlify bereitstellen. Eine Anleitung hierzu findest Du hier. Dabei verlierst Du aber eine Menge Funktionalität und es gibt keinen Weg mehr zurück zu WordPress!
2. WordPress mit einem WordPress Static Site Generator Plugin
Es gibt zwei WordPress-Plugins, die dir helfen können, eine statische Version deiner Seite zu erstellen. Besser gesagt gab, denn Simply Static und WP2Static werden beide nicht mehr weiterentwickelt. Im Falle von WP2Static gibt es aber wenigstens noch eine aktive Community und Support in einem Forum auf https://staticword.press/.
3. WordPress als a Static-Site-Generator auf einem Serverless Hosting bei strattic
Der aktuell wohl einfachste Weg, um sowohl von WordPress, als auch dem JAMstack zu profitieren, ist die Nutzung einer Plattform wie strattic, die deine WordPress-Seite in eine statische Seite verwandelt und sie auf eine serverlose Architektur stellt.
Das tolle an dieser Plattform ist, dass du deine WordPress-Seite wie gewohnt benutzt und dann auf einen Button klickst, um eine statische Version deiner Seite (HTML, CSS, Javascript) in ein CDN hochzuladen, wodurch die statische Seite vorgerendert und überall superschnell ausgeliefert wird. Dieser Ansatz macht es wirklich einfach auf den JAMStack zu switchen, aber leider bringt auch diese Variante ihre Nachteile mit sich:
Derzeit gibt es bei strattic weder Ajax-Funktionalität, noch die Möglichkeit Logins, Kommentare oder soetwas wie Mitgliedsseiten zu betreiben, von E-Commerce und Onlineshop mit WooCommerce ganz zu schweigen.
Update: wpengine startet Atlas
Die weltweit führende Managed-WordPress-Hosting-Plattform WP Engine hat mit Atlas eine eigene Headless-Lösung für WordPress entwickelt. Atlas besteht aus einem dynamischen Node.js-Renderer und einem Headless WordPress in einem Paket mit einem modernen Frontend-Framework nach Wahl.
Mein Fazit
Der Ansatz von JAMstack bietet wirklich spannende neue Möglichkeiten, Webseiten ins Web zu bringen, die schnell, sicher und skalierbar sind, aber was nützt das, wenn man dafür wieder ein Server-Side Rendering benötigt, nicht zeitnah Inhalte selbst nicht sein geliebtes CMS, WordPress einsetzen kann oder auf wichtige Funktionen verzichten muss?
Mein Fazit lautet daher: Der JAMStack ist technisch durchaus interessant, bietet aber aus meiner Sicht für die allermeisten WordPress-Nutzer keinen wirklichen Mehrwert.
Was meint ihr? Seht ihr einen Vorteil im JAMStack? Schreibt es mir in die Kommentare!
Abonniere das kostenlose KI-Update
Bleib auf dem Laufenden in Sachen Künstliche Intelligenz!
Melde Dich jetzt mit Deiner E-Mail-Adresse an und ich versorge Dich kostenlos mit News-Updates, Tools, Tipps und Empfehlungen aus den Bereichen Künstliche Intelligenz für dein Online Business, WordPress, SEO, Online-Marketing und vieles mehr.
Keine Sorge, ich mag Spam genauso wenig wie Du und gebe Deine Daten niemals weiter! Du bekommst höchstens einmal pro Woche eine E-Mail von mir. Versprochen.