Factorial GmbH

Eingereicht von:

Projektname:

Fabalicious

Kategorie:

Tools/Apps
Fabalicious screenshot 1
Fabalicious screenshot 2

Hintergrund

"Als Webentwicklerin steht man immer wieder vor der Herausforderung, unterschiedliche Hosting-Settings unter einen Hut zu bringen. Lokal wird auf MAMP entwickelt, der Dev-Server ist ein docker-basierter VHost irgendwo in der Cloud, das Production-Hosting irgendwo hinter einer restriktiven Firewall oder auf einem der vielen Gammel-Hoster in Deutschland.
Drei Monate nachdem die Seite live gegangen ist, ruft der Kunde an, weil was kaputt gegangen ist. Jetzt heisst es die lokale Umgebung wieder zu reaktivieren, Dateien und einen aktuellen Dump von der Produktions-Umgebung zu ziehen und lokal einzuspielen, um den Fehler zu finden. 
Solche und ähnliche Szenarien kennt wohl jede Drupal-Entwicklerin aus Ihrem eigenen Erleben."

 

Ziele

"Fabalicious will den Arbeitsalltag von Webentwicklerinnen erleichtern, indem Routine-Aufgaben standardisiert und nachvollziehbar über einfache Kommandos erledigt werden können. Z.B. ein neues Release auf dem Development-Server deployen, die aktuelle Produktions-Datenbank auf die Staging-Umgebung kopieren, ein Backup anzulegen, eine neue Docker-Instanz auf dem Test-Server für einen Feature-Branch starten.

Mithilfe von Fabalicious können administrative Tätigkeiten, die ein Spezial-Wissen benötigen (wie baue ich ein Docker-Container, wie lautet die Syntax um einen SSH-Tunnel aufzubauen) in eine Konfigurations-Datei dem Projekt beigelegt werden.

Fabalicious stellt eine Handvoll von immer wieder benötigten Kommandos zur Verfügung, lässt sich aber durch parametrisierte Skripte erweitern. Das Tool kann an sich mit jedem webbasierten Tool zurechtkommen, hat aber für Drupal ein paar Extra-Funktionalitäten on board, z.b. Unterstützung von Drush und drupalconsole.

Fabalicious ist in Python geschrieben und erweitert das bestehende Tool fabric um einige wichtige Kommandos und einer zentralen Konfigurations-Datei, wo alle Hosts eines Projekts hinterlegt sind. Mithilfe von Python werden Skripte auf diesen Hosts ausgeführt um verschiedene Aufgaben zu erledigen. Dazu nutzt es vorhandene Tools wie unix-System-Programme wie git, aber auch Tools aus der PHP- bzw. Drupal-Welt wie composer oder Drush."

 

Ergebnisse

Nachdem Butter-und-Brot-Funktionen implementiert wurden, (Reset einer Installation auf Auslieferungszustand, einfaches Kopieren von Datenbanken, Deployment von neuem Code) wurde Fabalicious immer mehr zu einem zentralen Bestandteil unseres Deployments und CI-Prozesses entwickelt.  Durch die Standardisierung und Vereinfachung des kompletten Administrations-Aufwandes bleiben mehr Zeit für das Entwickeln von Features oder Code-Reviews, unsere Administratoren können sich wichtigeren Dingen widmen als dem Support von wiederkehrenden Dingen.
 

Technische Herausforderungen

Mittlerweile sind wir gerade dabei, Fabablicious soweit zu erweitern, dass wir komplette Feature-Branches vollautomatisiert mithilfe von Gitlab CI deployen lassen können, das ermöglicht noch schnellere und effizientere Code-Reviews. Auch die Integration mit anderen externen Dienstleistern wird weiter vorangetrieben (z.b. platform.sh) 


Drupal Community-Beitrag

"Fabalicious ist Open Source, wir sind noch dabei die Dokumentation zu vervollständigen und wollen es in naher Zukunft mehr in die Community hineintragen und z.b auf dem Drupal-Camp in Frankfurt in einer Session einem grösserem Publikum vorstellen. 

Befreundete Entwickler und -Agenturen setzen das Tool in Ihrem Workflow erfolgreich ein.

Fabalicious ist das richtige Tool in heterogenen Umfeld und gemischten Teams,  spezialisiert auf Drupal, obwohl es in Python geschrieben ist. "

 

Erscheinungsdatum

01/10/2016

Gold-Sponsoren

Andere Sponsoren