Thomas Eiling shopware AG

PSH ist nicht entwickelt worden, um ein Build-System zu schaffen – es ist im Rahmen eines anderen Projekts entstanden, um unsere Anforderungen zu erfüllen.

Jan Philipp Pietrzyk shopware AG

Der Status Quo im Jahr 2017 ist ein ganz anderer als noch vor zwei oder mehr Jahren. Doch diese Anforderungen auf bereits bestehenden Systemen abzubilden, fällt zusehends schwerer.

Das Thema Build-Skripte wird im PHP-Umfeld immer wichtiger – dank Virtualisierung, dem verstärkten Einsatz von Middleware in der Applikationsarchitektur und dem Aufkommen von immer neuen Tools, die Teilaspekte der Applikationsentwicklung und Pflege drastisch vereinfachen.

Der Status Quo im Jahr 2017 ist ein ganz anderer als noch vor zwei oder mehr Jahren. Diese neuen Anforderungen auf bereits bestehenden Systemen abzubilden, fällt dabei zusehends schwerer. Im folgenden Artikel wollen wir eine Abgrenzung dieser neuen Anforderungen wagen und mit PSH einen möglichen Lösungsvorschlag präsentieren.

Aktuelle Build-Systeme, wie z. B. ant, bieten viele Möglichkeiten, um Prozesse zu automatisieren, doch benötigen für einen effektiven Einsatz einen zeitintensiven Einarbeitungsaufwand. Zusätzlich müssen in der Regel Abhängigkeiten wie Java o. ä. installiert sein, die die eigentliche Applikation gar nicht zur Ausführung benötigt. Build-Systeme entwickeln sich zusehends zu einer Middleware, da sie immer mehr Systeme und Dienste miteinander verknüpfen müssen (Abb. 1).

Abb. 1: Middleware im PHP-Umfeld

Abb. 1: Middleware im PHP-Umfeld

Auf der einen Seite müssen verschiedene Environments für die Entwicklung und Continuous Integration provisioniert werden, andererseits muss die Applikation abhängig von dem Environment spezifisch konfiguriert werden können. Die Instanzen unterscheiden sich in der Regel durch unterschiedliche Zugangsdaten und Pfadangaben. Des Weiteren ist zum Beispiel in einem automatisch generierten Release-Package PHPUnit nicht notwendig. Aus den beschriebenen Szenarien ergeben sich schnell verschiedene Kombinationsmöglichkeiten von Environments und notwendigen Skripten (Tabelle 1).

Environment Skripte
Local Initialisierung der Applikation, Ausführung der Testsuite, Cache der Applikation leeren
Local Docker Initialisierung der Applikation, Ausführung der Testsuite, Cache der Applikation leeren, Docker-Container verwalten, Continuous Integration, Softwarequalitätsmetriken überprüfen
Vagrant/Windows Entwicklung, Release-Package erstellen
Continuous Integration Docker Ausführung der Testsuite, Cache der Applikation leeren, Daily-Builds, Softwarequalitätsmetriken überprüfen, Release-Package bauen
Live Aktualisierung der Applikation

Tabelle 1: Applikationsumgebungen

Aus unserem Entwicklungsalltag und Erfahrungen aus mehreren Open-Source-Projekten ergeben sich nachfolgend dargestellte Anforderungen an ein Build-System, die sich mit den meisten Anforderungen von Webanwendungen decken.

Einfache Orchestrierung von Services und Systemen

Es gibt für einen Programmierer verschiedene Möglichkeiten, eine Entwicklungsumgebung aufzusetzen. Die geläufigsten sind Vagrant, Docker oder eine vollständige lokale Installation aller notwendigen Serverdienste.

Den vollständigen Artikel lesen Sie in der Ausgabe:

PHP Magazin 3.17 - "Plates"

Alle Infos zum Heft
579781249PSH Build Middleware Management
X
- Gib Deinen Standort ein -
- or -