comm-press GmbH

Eingereicht von:

Projektname:

Para

Kategorie:

Lösungen
weiterentwicklung_von_para - Ralf Hendel

Hintergrund

Die Idee hinter Multisites besteht darin, mehrere Websites mit einer gemeinsamen Code-Base betreiben zu können und den Wartungsaufwand auf diese Weise zu reduzieren.

Mit Drupal lassen sich Multisites auf verschiedene Weisen realisieren. Mit dem Domain-Modul lassen sich zum Beispiel mehrere Websites in einer gemeinsamen Installation betreiben.

Aus unserer Erfahrung ist es jedoch in aller Regel empfehlenswert, dass jede Website ihre eigene Installation besitzt: im Bedarfsfall lässt sich jede Website unterschiedlich von ihren Geschwisterseiten skalieren. Betrieben werden alle Projekte über eine – möglichst große – gemeinsame Code-Base. Der jeweils individuelle Anteil an Konfiguration lässt sich mit Hilfe von Modulen wie Nimbus oder Config Split behandeln.

In dieser Konstellation muss beim Deployment dafür gesorgt werden, dass viele einzelne Schritte – wie Import der Konfiguration, Löschen der Caches oder anderes – auf jeder Geschwisterseite einzeln ausgeführt werden. Obwohl sich die Befehle bequem per Terminal abfeuern lassen, sind diese Arbeiten in der Summe zeitaufwändig und potentiell fehleranfällig.

Um dieser Herausforderung zu begegnen haben wir "Para" erschaffen, welches die gleichzeitige Ausführung von Terminal Commands an mehreren Orten ermöglicht. Para vermittelt dabei das Gefühl, nur an einer einzigen Seite zu arbeiten, obwohl sämtliche Befehle gleichzeitig auf allen Geschwisterseiten ausgeführt werden. Der Zeitaufwand für die Wartung aller Seiten reduziert sich mit Para insgesamt nur auf den Aufwand, den eine einzige Seite auslösen würde.


Ziele

Reduzieren von Zeit und Fehlerquellen bei der Wartung und Entwicklung von Drupal Multisite-Projekten


Ergebnisse

Der Zeitaufwand für die Wartung aller Seiten reduziert sich insgesamt auf den Aufwand, den eine einzige Seite auslösen würde. Durch die Automatisation wird der "Fehlerfaktor Mensch" reduziert.


Technische Herausforderungen

Implementierung einer eigenen Shell, bei der sämtliche Tastatureingaben des Benutzers abgefangen und von der Shell und nicht vom Betriebssystem verarbeitet werden.

Erstellung und Überwachung der parallelen PHP-Prozesse, die bei Ausführung eines Befehls aus der Para-Shell gestartet und beendet werden.


Drupal Community-Beitrag

Contribution als Open Source Tool auf Github unter https://github.com/rackberg/para


Erscheiningsdatum

23/12/2017