Es gibt verschiedene Gründe, warum Unternehmen ihre eigens entwickelte Drupal Anwendung auf der firmeninternen Infrastruktur hosten und verwalten möchten. Dabei machen wir häufig die Erfahrung, dass mehr Augenmerk in die Entwicklung der Drupalseite gelegt wird und weniger in die dafür vorgesehene Infrastruktur. Mittlerweile ist jedoch die Entwicklung mit Drupal weniger die Schwierigkeit. Es stellt eine viel größere Herausforderung dar, dass die Webseite (Web-Applikation) später den geplanten Inhalt möglichst performant und zuverlässig darstellt und dem Benutzeransturm gewachsen ist.

Wir weisen unsere Kunden deswegen immer darauf hin, dass die rechtzeitige Ausarbeitung eines optimalen Infrastrukturplans für die geplante Drupal Anwendung mindestens genauso wichtig ist, wie die Entwicklung selbst.

Die optimale Infrastruktur

Eine sicheren Ablaufplan, den man 1:1 umsetzen muss, damit die Infrastruktur für jede Drupalseite passt, gibt es nicht. Denn die optimale Infrastruktur ist abhängig vom Einsatzzweck und somit immer ein Mix aus verschiedenen Systemen und deren richtigen Konfiguration. Dazu zählen nicht nur der Webserver und Datenbankserver, sondern auch die Versionskontrolle (z.B. Git), das Konfigurationsmanagemet und vor allem die Caching-Mechanismen.

Folgende Bereiche sollten auf jeden Fall berücksichtigt werden, damit großangelegte Drupalseiten möglichst performant laufen

  • Neben der passenden Server Infrastruktur ist ein ausgeklügeltes Monitoring System, welches Performancestörungen vorhersagt und die Ausfallzeiten verhindert (oder zumindest verkürzt), eine Grundvoraussetzung.
  • Einsatz der richtigen Caching-Techniken (APC (=Alternative PHP Cache), Memcached, Varnish (=Reverse Proxy Cache).
  • Einsatz von Solr (ein Projekt der Apache Foundation) für die Suche.
  • Apache Webserver Tuning.
  • Optimierung der MySQL Datenbank.
  • Static variable caching für PHP einsetzen.
  • Drupal als Framework selbst optimieren.

Natürlich ist keine Drupalwebseite vollständig ohne die passende Versionsverwaltung (z.B. Git). Aber unabhängig davon, welches Versionsierungssystem verwendet wird - wichtig ist, dass eines zum Einsatz kommt, mit dem das Drupal Entwickler Team arbeiten kann und dass für den Notfall immer Backups vorhanden sind, auf die man Zugriff hat.

Aktualisiert: