© istockphoto.com/Tomacco, © istockphoto.com/akindo
PHP Magazin
Anforderungen an Build-Systeme im Jahr 2017

PSH Build Middleware Management


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).

shopware_psh_1.tif_fmt1.jpgAbb. 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 Pfad­angaben. 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, Releasepackage erstellen

Continuous Integration Docker

Ausführung der Testsuite, Cache der Applikation leeren, Daily-Builds, Softwarequalitätsmetriken überprüfen, Releasepackage 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.

Einfa...

PHP Magazin
Anforderungen an Build-Systeme im Jahr 2017

PSH Build Middleware Management

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.

Thomas Eiling, Jan Philipp Pietrzyk


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).

shopware_psh_1.tif_fmt1.jpgAbb. 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 Pfad­angaben. 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, Releasepackage erstellen

Continuous Integration Docker

Ausführung der Testsuite, Cache der Applikation leeren, Daily-Builds, Softwarequalitätsmetriken überprüfen, Releasepackage 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.

Einfa...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang