Kategorien
Content Management Systeme Shared Hosting

Konfigurations-Management am Beispiel Drupal

Wer eine Website über längere Zeit betreibt, muss an dieser Website oft Änderungen und Erweiterungen vornehmen. Das gilt insbesondere für Content Management Systeme wie WordPress, Drupal und Joomla.

Die Zielgruppen dieser Systeme sind durchaus unterschiedlich. Einerseits werden sie gern von Anwendern genutzt, die die individuelle Konfiguration der Website über die Benutzeroberfläche im Browser vornehmen und nur im Notfall selbst programmieren wollen.

Andererseits werden diese Systeme auch von Web-Agenturen als Basis für Kunden-Projekte genutzt. In diesem Fall werden, neben den Konfigurationsänderungen, oft individuell programmierte Features für die Kunden der Agentur erstellt die nach dem Launch der Website supported werden müssen.

In den meisten Fällen einigt man sich zwischen Agentur und Kunde auf eine Umgebung mit einer produktiven Live-Site und mindestens einer oder auch mehreren Test-, Staging- und Entwicklungs-Websites. Auch für die kleinste Website bietet es Vorteile wenn nicht „live“ konfiguriert wird. Die Änderungen können „in Ruhe“ in einer Test-Umgebung gemacht werden und bei Gefallen in die Live-Site übertragen werden. Die „Übertragung“ ist allerdings gar nicht so einfach zu realisieren, weil die Änderungen oft viele „Kleinigkeiten“ umfassen und im schlimmsten Fall auf der Live-Site manuell nachvollzogen werden müssen. Je mehr Personen an der Entwicklung der Website arbeiten, umso wichtiger sind klare Vereinbarungen, wer an welcher Stelle und zu welcher Zeit etwas ändern darf.

Programmcode für zusätzliche Plugins, Erweiterungen, Module, Themes und Templates lässt sich gut in Versionskontrollsystemen wie Git verwalten, wie aber geht man mit Konfigurationseinstellungen um? Ich denke da an die Positionierung von Blöcken, Menüpunkte, Einstellungen in Themes, der Name der Website, die Datumsformate und vieles andere mehr.

Konfigurationen werden in LAMP-basierten Systemen gern in der Datenbank verwaltet und sind daher nicht mit gängigen Mitteln wie Git versionierbar.

In diesem Blog-Post zeige ich den Ansatz, den Drupal bei der Verwaltung von Konfigurationen verfolgt.