Flightcontrol: Deployment Plattform für Drupal Projekte

Mein aktuelles Fundstück hat es in sich: Flightcontrol ist eine Deployment Plattform für Drupal Projekte mit zahlreichen interessanten Features:

  • Verwaltung von Kunden, Projekten und Umgebungen
  • Connectoren zu GutHub, Stash, Bitbucket und Gitlab
  • Deployment der Umgebungen via SSH und FTP
  • Diverse voreingestellte Deployment Tasks (z. B. Backup, Drupal Cache leeren, Features reverten, etc.)
  • Automatisches Rollback bei fehlgeschlagenen Deployments
  • Automatische Updates des Drupal Kerns und der Module (wahlweise Push in einen separaten Branch)
  • Report der Deployments in HipChat

Ein erster Test hat mich schon ziemlich beeindruckt, obwohl zuerst ein kleiner Bug gekillt werden muss: statt

drupal_set_message()

wird an irgendeiner Stelle (wo genau weiß ich gerade nicht mehr)

drupal_set_messag()

genutzt. Dieser kleine Type ist jedoch bisher der einzige Bug, der mir aufgefallen ist.

Noch ein wichtiger Hinweis (hat mich fast 2 Stunden bis zum Feierabendbier gekostet):
Beim Anlegen der Umgebung (Environment) unbedingt beachten, dass man in der Production-Umgebung lediglich Tags deployen kann. Ich musste erst das ganze deploy Modul debuggen um dort dann den Hinweis zu finden ;)

In allen anderen Umgebungen (Development, Test, etc.) können dann auch wieder einzelne Commits deployed werden.

Was fehlt?

Auf den ersten Blick nicht viel. Deployments müssen scheinbar manuell angestoßen werden. Hier wäre ein Webhook natürlich genial, der dann von Guthub, Gitlab oder whatever gefeuert werden könnte. Außerdem ist das Deployment durch die strikten Vorgaben der einzelnen Schritte (Cache leeren, Features reverten, etc.) etwas zu starr vorgegeben. Die Schritte können jeweils via Checkbox lediglich ab oder angewählt werden. Die Reihenfolge lässt sich nicht ändern, geschweige denn erweitert werden. Hier wäre es super, wenn man noch eigene Befehle ergänzen könnte.

Einen kleinen Schönheitsfehler hat das Dingen noch: Kunden, Projekte, Umgebungen und Deployments sind als Inhaltstypen abgelegt - eigene Entities wären genial!

Mal sehen, alles in allem ein tolles Projekt. Ich werde es mal testweise für das ein oder andere Projekt einsetzen.