
Die Bereitstellung einer Drupal-10- oder Drupal-11-Anwendung kann sich anfühlen, als würde man durch ein Minenfeld voller potenzieller Probleme laufen. Selbst eine gut aufgebaute Drupal-Website kann bei der Bereitstellung aufgrund einiger häufiger Fallstricke ins Straucheln geraten. Für IT-Manager und technische Projektleiter bedeutet das Verständnis dieser Fallstricke und der Möglichkeiten, wie cloud-Automatisierung sie lösen kann, weniger Notfälle spät in der Nacht und reibungslosere Starts.
In diesem Artikel beleuchten wir die häufigsten Herausforderungen bei der Drupal-Bereitstellung (Inkonsistenzen in der Umgebung, Abhängigkeitsmanagement, Konfigurationsabweichungen, End-to-End-Tests, Sicherheitsrisiken und Skalierungsprobleme) und schauen uns an, wie eine cloud-basierte Anwendungsplattform wie Upsun Cloud diese beheben kann. Lass uns gleich loslegen – mit kurzen, prägnanten Abschnitten, die du schnell überfliegen und umsetzen kannst.
Wir alle haben schon mal einen Kollegen sagen hören: „Aber auf meinem Rechner hat’s doch funktioniert!“ Inkonsistenzen zwischen den Umgebungen treten auf, wenn sich deine Entwicklungs-, Staging- und Produktionsumgebungen in ihrer Konfiguration unterscheiden. Vielleicht unterscheidet sich die PHP-Version oder die Datenbank-Engine in der Produktivumgebung geringfügig, oder eine Caching-Einstellung ist in einer Umgebung aktiviert, in einer anderen jedoch nicht. Diese Unterschiede führen im ungünstigsten Moment zu unerwarteten Fehlern. Beispielsweise könnte sich ein Drupal-Modul anders verhalten, wenn in der Produktivumgebung eine PHP-Erweiterung fehlt oder wenn sich Dateiberechtigungen und PHP-Speichergrenzen zwischen den Servern unterscheiden. Die Gefahr besteht hier darin, dass die Übereinstimmung zwischen den Umgebungen nicht gewahrt wird, was zu Überraschungen beim Deployment führt.
So löst Cloud-Automatisierung dieses Problem: Eine cloud-basierte Plattform kann sicherstellen, dass jede Umgebung ein identischer Zwilling der Produktionsumgebung ist. Upsun Cloud ermöglicht es dir beispielsweise, den gesamten Produktions-Stack (Code, Datenbank und Konfiguration) mithilfe der Funktion zum Klonen von Umgebungen in eine Staging-Umgebung zu klonen. Dieser Prozess erstellt eine Replik deiner Produktionsumgebung, wodurch es ganz einfach wird, Änderungen mit echten Daten und Konfigurationen zu testen. Das bedeutet, dass deine Entwickler immer in einer Umgebung testen, die die Produktivumgebung widerspiegelt – keine „Snowflake“-Server oder mysteriösen, nur in der Produktivumgebung auftretenden Bugs mehr. Konfigurationsdateien und Umgebungsvariablen können über alle Umgebungen hinweg einheitlich verwaltet werden.
In der Praxis folgt dieser Ansatz dem Prinzip der Dev/Prod-Parität: Die Umgebungen werden so ähnlich wie möglich gehalten, um Probleme frühzeitig zu erkennen. Durch die Automatisierung der Umgebungskonfiguration beseitigt eine cloud-basierte Anwendungsplattform das „Auf meinem Rechner funktioniert es“-Syndrom und standardisiert die Betriebsbedingungen von Drupal auf breiter Front.
Modernes Drupal nutzt Composer zur Verwaltung von PHP-Abhängigkeiten, Modulen und Bibliotheken. Damit ein zentralisiertes Abhängigkeitsmanagement effektiv ist, muss es über alle Umgebungen hinweg einheitlich angewendet werden. Es ist wichtig, einen automatisierten Prozess für die Installation und Aktualisierung von Abhängigkeiten zu haben und beispielsweise das manuelle Kopieren von Dateien (einschließlich des „vendor“-Verzeichnisses) zwischen Umgebungen zu vermeiden, was zu Inkonsistenzen und menschlichen Fehlern führen kann.
So löst die cloud-Automatisierung das Problem: Der Schlüssel liegt darin, die Abhängigkeiten überall auf die gleiche Weise automatisiert zu handhaben, indem ein Bereitstellungsprozess erstellt wird, der sich auf Composer stützt und die Datei „composer.lock“ als unumstößliche Vorgabe betrachtet. Eine Plattform wie Upsun Cloud kann so konfiguriert werden, dass sie während der Build-Phase der Bereitstellung automatisch „composer install“ ausführt und dabei genau die in „composer.lock“ angegebenen Versionen verwendet. Das garantiert: Wenn es im Testumgebung funktioniert hat, sind dieselben Module und Bibliotheken (bis hin zur Version) auch in der Produktivumgebung vorhanden. Kein „Es funktioniert in der Dev-Umgebung, aber nicht in der Produktivumgebung“ mehr aufgrund fehlender oder inkonsistent installierter Abhängigkeiten. Durch die Automatisierung von Composer-Läufen und die Synchronisierung der Abhängigkeiten verhindern cloud-Bereitstellungsplattformen Composer-Alpträume. Das Ergebnis ist eine durchgängig konsistente Drupal-Codebasis ohne Überraschungen.
Drupal 8 führte ein robustes Konfigurationsmanagement ein, bei dem Website-Einstellungen, Views und Inhaltstypen in YAML-Dateien gespeichert werden, die exportiert und importiert werden können. Theoretisch bedeutet das, dass du Konfigurationsänderungen (z. B. einen neuen Inhaltstyp oder ein aktualisiertes View) in einer Entwicklungsumgebung entwickeln und kontrolliert in der Produktivumgebung bereitstellen kannst. In der Praxis stoßen Teams jedoch oft auf Konfigurationsabweichungen. Diese Falle tritt auf, wenn Konfigurationsänderungen ad hoc in einer Umgebung vorgenommen werden (wie z. B. eine schnelle Korrektur im Admin-Bereich der Produktionsseite) und nicht im Code nachverfolgt werden. Mit der Zeit weichen die Konfigurationen in der Produktivumgebung von dem ab, was in der Versionskontrolle gespeichert ist. Die nächste Bereitstellung könnte diese Änderungen versehentlich überschreiben oder mit ihnen in Konflikt geraten, was zu fehlenden Features oder fehlerhaften Einstellungen auf der Live-Seite führt.
Die manuelle Verwaltung der Drupal-Konfiguration über mehrere Umgebungen hinweg ist fehleranfällig. Vielleicht vergisst du, „drush config:export“ auszuführen, oder vergisst nach dem Deployment, die Konfigurationen in der Produktivumgebung zu importieren. Selbst kleine Abweichungen, wie eine umgeschaltete Einstellung oder ein aktiviertes Modul, können Fehler verursachen, die schwer nachzuverfolgen sind.
So löst die cloud-basierte Automatisierung dieses Problem: Cloud-Plattformen bekämpfen Konfigurationsabweichungen, indem sie einen „Everything-as-Code“-Ansatz fördern. Mit Upsun Cloud kannst du beispielsweise den Import der Drupal-Konfiguration und Datenbankaktualisierungen als Teil des Deployment-Prozesses automatisieren. Bei jedem Deployment kann ein Post-Deploy-Hook „drush updb“ ausführen (um ausstehende Änderungen am Datenbankschema zu übernehmen) und „drush cim“ (um die festgeschriebenen Konfigurationsänderungen zu importieren). So stellst du sicher, dass deine Produktionsumgebung immer mit der Konfiguration in Git synchronisiert ist. Es gibt keine Möglichkeit, einen Schritt zu überspringen – die Automatisierung erledigt das jedes Mal. Da du zudem ganz einfach temporäre Umgebungen mit den neuesten Konfigurations- und Produktionsdaten einrichten kannst, kann dein Team Konfigurationsänderungen an einem echten Datensatz testen, bevor sie in der Produktivumgebung übernommen werden. Dieser Workflow deckt Probleme bei der Konfigurationsintegration frühzeitig auf und verhindert, dass nicht nachverfolgte Änderungen in der Produktivumgebung gelangen. Kurz gesagt: Die cloud-Automatisierung behandelt die Drupal-Konfiguration als gleichberechtigtes Element des Deployment-Prozesses und beseitigt so Abweichungen sowie die mysteriösen Fehler, die diese verursachen.
Du hast eine kleine Änderung an deiner Drupal-Codebasis vorgenommen. Vielleicht ist es eine Anpassung am Theme-Stil oder an einem Skript, eine Änderung an der Beschriftung eines „Exposed Filter“ in View oder eine Änderung an einem Textformatfilter. Oder vielleicht ist es eine größere Änderung: ein neues Modul, ein neuer Entitätstyp, ein neu gestaltetes Menü. Wie gründlich hast du deine Änderung getestet? Bist du sicher, dass deine Änderung am Formular für einen Inhaltseintrag nicht zu einem 500-Fehler führt? Bist du sicher, dass deine Änderungen an den Twig-Templates bei jeder von ihnen gerenderten Inhaltsvariante funktionieren?
So löst cloud-Automatisierung dieses Problem: Da die Bereitstellung einer neuen Funktion in einer Entwicklungs- oder Staging-Umgebung auf konsistente, reproduzierbare Weise auf einer konsistenten, reproduzierbaren Infrastruktur erfolgen kann, kannst du automatisierte Tests auf diese Umgebung anwenden und sicher sein, dass die Ergebnisse auch in der Produktivumgebung Bestand haben werden. Beispielsweise könntest du einen Testschritt in CI haben, der jede Seite in der Sitemap abfragt, um sicherzustellen, dass keine 500-Statuscodes auftreten. Oder du führst Lighthouse-Performance-Tests durch, um sicherzustellen, dass sich dein Layout-Shift nicht erhöht hat, oder visuelle Regressionstests, um zu überprüfen, ob eine Stiländerung das Layout nicht an unerwarteten Stellen zerstört hat. Ganz gleich, wie die Testsuite aussieht – diese grünen Häkchen in CI bedeuten, dass du die Codeänderungen mit Vertrauen in die Produktivumgebung bereitstellen kannst.
Sicherheit ist ein zentrales Anliegen für jede Webanwendung, und Drupal bildet da keine Ausnahme. Eine häufige Falle bei Deployments ist die Verzögerung bei der Anwendung von Sicherheitsupdates oder Fehlkonfigurationen, die Schwachstellen verursachen. Bei einem manuellen Deployment-Setup können kritische Updates für den Drupal-Kern oder Module verzögert werden, da der Prozess umständlich ist. Die Folge? Deine Website könnte mit bekannten Sicherheitslücken laufen.
Wir haben gesehen, wie gravierend das sein kann: So betraf beispielsweise die berüchtigte „Drupalgeddon2“-Sicherheitslücke im Jahr 2018 über eine Million Drupal-Websites und ermöglichte die Ausführung von Remote-Code, wenn sie nicht umgehend gepatcht wurde.
Weniger dramatisch ist es zwar, wenn ein Entwicklungsmodul (wie Devel) in der Produktivumgebung aktiviert bleibt oder ausführliche Fehlermeldungen angezeigt werden – doch dadurch können sensible Informationen an Angreifer gelangen. Ein weiteres Risiko ergibt sich aus dem Umgang mit Geheimnissen und Zugangsdaten: Das Programmieren von API-Schlüsseln oder Datenbankpasswörtern in Konfigurationsdateien, die geteilt werden oder in falsche Hände geraten, kann die Sicherheit gefährden. Insgesamt neigen manuelle, nicht wiederholbare Bereitstellungsprozesse dazu, Lücken für Sicherheitsmängel zu schaffen – sei es durch Nachlässigkeit oder einfache menschliche Fehler.
So löst Cloud-Automatisierung das Problem: Eine verwaltete cloud-Plattform reduziert diese Risiken erheblich, indem sie sichere Vorgehensweisen zum Standard macht. Zum einen bedeuten automatisierte Bereitstellungen, dass du Updates schnell in allen Umgebungen anwenden kannst. Wenn ein Sicherheitspatch für den Drupal-Kern veröffentlicht wird, kann dein Team das Update über eine Continuous-Deployment-Pipeline (mit robusten Integrationstests) bereitstellen und es innerhalb von Minuten – statt Tagen – in der Produktivumgebung live schalten. Diese Agilität ist entscheidend, wenn es um Zero-Day-Exploits geht.
Zudem übernehmen Upsun Cloud und ähnliche Plattformen hinter den Kulissen einen Großteil der Sicherheitshärtung: Sie isolieren deine Anwendungscontainer, erzwingen schreibgeschützte Dateisysteme in der Produktivumgebung (sodass eine kompromittierte Website Systemdateien nicht ohne Weiteres ändern kann) und stellen standardmäßig TLS/HTTPS bereit. Sie bieten außerdem eine integrierte Verwaltung vertraulicher Daten – so können Datenbankpasswörter, API-Schlüssel usw. als Umgebungsvariablen eingefügt und müssen nicht im Code oder Repo gespeichert werden.
Schließlich sorgt die cloud-basierte Automatisierung durch den Wegfall der manuellen Serverkonfiguration dafür, dass Dinge wie Dateiberechtigungen, PHP-Einstellungen und andere sicherheitsrelevante Konfigurationen konsistent und geprüft sind. Die Plattform führt deine Drupal-Bereitstellung im Wesentlichen so, dass sie Best Practices befolgt (wie das Deaktivieren der PHP-Ausführung im Upload-Verzeichnis, die Verwendung der richtigen Dateiberechtigungen und das Auf-dem-neuesten-Stand-Halten der Software). Das Ergebnis ist eine Drupal-Website, die nicht nur einfacher zu bereitstellen ist, sondern für Angreifer auch viel schwerer zu knacken ist.
Deine Drupal-Website startet vielleicht auf einem einzigen Server mit mäßigem Traffic, aber was passiert, wenn die Kampagne deines Marketingteams eine Flut von Besuchern auslöst oder dein Drupal-E-Commerce-Shop einen saisonalen Spitzenwert erreicht? Die Skalierung einer Drupal-Anwendung birgt eine Reihe weiterer Fallstricke. Zu den Herausforderungen gehören: sicherzustellen, dass die Website hohen Traffic ohne Ausfallzeiten bewältigen kann, die horizontale Skalierung über mehrere Server hinweg und die Aufrechterhaltung der performance unter Last.
Herkömmliche Bereitstellungen auf selbstverwalteter Infrastruktur erfordern erheblichen Aufwand für die Skalierung: Möglicherweise musst du zusätzliche Server oder Container bereitstellen, Load Balancer einrichten, ein CDN oder eine Caching-Ebene konfigurieren und sicherstellen, dass die Datenbank mehr Lese- und Schreibvorgänge bewältigen kann. Ohne Automatisierung sind dabei oft manuelle Anpassungen erforderlich, was zu Fehlern führen kann (wie zum Beispiel das Versäumen, eine Konfiguration für einen neuen Server im Cluster einzubinden, was dazu führt, dass ein langsamer Knoten das gesamte System ausbremst).
Selbst nach der horizontalen Skalierung kann es zu Konsistenzproblemen kommen, wenn deine Anwendung nicht für Parallelität ausgelegt ist (z. B. wenn Dateien unsachgemäß in ein gemeinsames Verzeichnis geschrieben werden oder kein gemeinsamer Cache genutzt wird). Eine schlecht geplante Skalierungsstrategie kann das Nutzererlebnis beeinträchtigen – langsame Seitenladezeiten oder im schlimmsten Fall Abstürze bei Spitzenauslastung.
So löst cloud-Automatisierung dieses Problem: Eine cloud-Anwendungsplattform vereinfacht die Skalierung, indem sie die aufwendigen Aufgaben abstrahiert. Mit Upsun Cloud ist die vertikale Skalierung (mehr Ressourcen pro Knoten) oder die horizontale Skalierung (Hinzufügen weiterer Anwendungsinstanzen) in der Regel eine Konfigurationsänderung oder ein einfacher Befehl – keine umfassende Umstellung. Die Plattform kümmert sich um die Bereitstellung neuer Server, die Aktualisierung der Routing-Regeln und stellt sicher, dass jede Instanz denselben Code und dieselbe Konfiguration hat. Das hängt wiederum mit der Konsistenz der Umgebung zusammen – egal, ob du eine oder zehn Instanzen hast, alle führen denselben Code aus, sodass es auf den zusätzlichen Knoten zu keinem ungewöhnlichen Verhalten kommt.
Die cloud-Automatisierung integriert zudem von Haus aus Caching- und performance-Tools. Du kannst zum Beispiel ganz einfach einen Redis-Cache hinzufügen oder das integrierte Caching von Drupal aktivieren, da du weißt, dass die Plattform die Cache-Daten ordnungsgemäß speichert. Bei einem Traffic-Anstieg (sagen wir, deine Drupal-basierte E-Commerce-Seite führt einen Flash-Sale durch) ermöglicht dir eine cloud-Plattform wie Upsun Cloud, Ressourcen schnell nach oben oder unten zu skalieren, um die erhöhte Last zu bewältigen. Du kannst die Zuweisung von CPU, Arbeitsspeicher und Speicherplatz pro Umgebung anpassen oder durch Konfigurationsänderungen für die horizontale Skalierung zusätzliche Anwendungsinstanzen hinzufügen.
Das Ergebnis sind Ausfallsicherheit und Flexibilität: Dein Team kann Wachstum oder Spitzenbelastungen souverän bewältigen, ohne in den Krisenmodus verfallen zu müssen. Und da diese Skalierungsvorgänge getestet und wiederholbar sind, vermeidest du die Fallstricke der manuellen Skalierung (wie falsch konfigurierte Server oder Panik bei Deployments mitten in der Nacht). Letztendlich ermöglicht dir die cloud-Automatisierung, die Nutzeranforderungen nahtlos zu erfüllen und deine Drupal-Seite schnell und verfügbar zu halten, wenn es darauf ankommt.
Die Bereitstellung von Drupal muss keine nervenaufreibende Tortur sein. Die üblichen Fallstricke – Inkonsistenzen zwischen den Umgebungen, Chaos bei den Abhängigkeiten, Konfigurationsabweichungen, Integrationstests, Sicherheitslücken und Skalierungsprobleme – lassen sich mit dem richtigen Ansatz alle lösen. Das Thema, das dir vielleicht schon aufgefallen ist, lautet: Automatisierung und Konsistenz. Durch den Einsatz einer verwalteten cloud-Plattform wie Upsun Cloud können Teams die fehleranfälligen Teile von Drupal-Bereitstellungen automatisieren. Das bedeutet, dass deine Entwickler weniger Zeit damit verbringen, Schritte zurückzuverfolgen oder Fehler zu beheben, die nur in der Produktivumgebung auftreten, und mehr Zeit damit, Features zu entwickeln, die dein Unternehmen voranbringen.
Wir kennen diese Probleme, weil wir sie selbst erlebt haben, und wir wissen auch, dass moderne DevOps-Tools und cloud-basierte Anwendungsplattformen sie so gut wie beseitigen können. Letztendlich ist das Vermeiden von Deployment-Fallstricken keine Frage des Glücks, sondern der Nutzung der besten verfügbaren Praktiken und Tools. Mit Drupal und cloud-basierter Automatisierung in eurem Werkzeugkasten könnt ihr Updates und neue Websites souverän bereitstellen – in der Gewissheit, dass die Plattform euch bei den kniffligen Teilen den Rücken freihält.
Möchtest du diese Vorteile selbst erleben? Unser Leitfaden für den Einstieg in Drupal auf der Upsun Cloud führt dich durch die Einrichtung deines ersten Projekts und die Umsetzung dieser automatisierten Bereitstellungsmethoden.
Viel Spaß (und stressfreies) Deployen!