© Teerawat siriahmat/Shutterstock.com
PHP Magazin
Deployment von Shopware in Multistage Environments

Deployment: Automatisch, praktisch, gut!

Für viele Shopbetreiber und Agenturen ist ein automatisches Shopware Deployment immer noch ein Buch mit sieben Siegeln. Viele behaupten, es sei zu aufwendig oder würde nicht vom Kunden bezahlten werden. Dass das aber nicht stimmt und dass mit ein wenig Konfigurationsaufwand ein einfacher Deployment- und Rollback-Prozess möglich ist, zeige ich euch in diesem Artikel.

Thomas Eiling


Für viele Shopware-Entwickler sieht ein „typischer“ Deployment-Prozess immer noch wie folgt aus:

Hochladen der ÄnderungenInstallation/Update von Plug-insKonfiguration der Plug-ins/GrundeinstellungenCache leerenPrüfen ob alles wie erwartet funktioniert

Das ist nach meinem Dafürhalten eine ziemlich lästige Art, eine neue Softwareversion auszuliefern. Zusätzlich ist es durch die vielen manuellen Schritte sehr fehleranfällig. Wie wäre es, wenn wir all diese Schritte mit einem einzigen Shell-Command erledigen könnten? In den folgenden Abschnitten stelle ich euch ein Skript vor, mit dem ihr viele Anforderungen an ein automatisches Deployment erledigt. Das vollständige beschriebene Skript könnt ihr auf GitHub [1] finden.

Voraussetzungen

Die benötigten Voraussetzungen für so ein Deployment sind gering. Wir benötigen Shopware 5.4 oder aktueller und müssen die Composer-Installation [2] verwenden. Zusätzlich sollte sich PHP 7.0 oder aktueller auf dem Server befinden. Um einen reibungslosen Rollback zu einer vorherigen Version zu ermöglichen, müssen sich alle Entwickler und die Entwickler von Drittanbietersoftware bewusst sein, dass das Blue-Green Deployment umgesetzt wird. Shopware unterstützt dies von Haus aus seit der Version 5.4.

Auf der Serverseite benötigen wir mindestens SSH-Zugriff und eine Verzeichnisstruktur, wie sie in Listing 1 beschrieben ist. Der symbolische Link httpdocs ist als DocumentRoot konfiguriert und verweist auf die aktuell ausgelieferte Softwareversion. Im Verzeichnis media werden alle statischen Daten von Shopware gespeichert. Diese sind wiederum durch einen symbolischen Link im ShopwareDocumentRoot verknüpft.

Listing 1: Verzeichnisstrukturhttpdocs ª 1.0.1 1.0.01.0.1 - media ª ../mediamedia

Blue-Green Deployment

Die Möglichkeit, die Produktivumgebung einfach up- und downgraden zu können, wird allgemein als Blue-Green Deployment bezeichnet. Jede neue Version darf keine destruktiven Änderungen in einem Deploymentschritt ausführen, um einen einfachen Rollback zu ermöglichen. Das bedeutet, dass die neueste Datenbankversion immer noch mit der vorherigen Softwareversion einwandfrei funktionieren muss und es darf durch einen Rollback kein Datenverlust entstehen.

Durch dieses Prinzip benötigt eine Namensänderung an einer Datenbankspalte mindestens drei separat deployte Softwareversionen. In der ersten Version wird eine neue, korrigierte Spalte angelegt. Die Daten aus der alten Spalte werden in die Neue übernommen und durch einen Datenbanktrigger aktuell ...

PHP Magazin
Deployment von Shopware in Multistage Environments

Deployment: Automatisch, praktisch, gut!

Für viele Shopbetreiber und Agenturen ist ein automatisches Shopware Deployment immer noch ein Buch mit sieben Siegeln. Viele behaupten, es sei zu aufwendig oder würde nicht vom Kunden bezahlten werden. Dass das aber nicht stimmt und dass mit ein wenig Konfigurationsaufwand ein einfacher Deployment- und Rollback-Prozess möglich ist, zeige ich euch in diesem Artikel.

Thomas Eiling


Für viele Shopware-Entwickler sieht ein „typischer“ Deployment-Prozess immer noch wie folgt aus:

Hochladen der ÄnderungenInstallation/Update von Plug-insKonfiguration der Plug-ins/GrundeinstellungenCache leerenPrüfen ob alles wie erwartet funktioniert

Das ist nach meinem Dafürhalten eine ziemlich lästige Art, eine neue Softwareversion auszuliefern. Zusätzlich ist es durch die vielen manuellen Schritte sehr fehleranfällig. Wie wäre es, wenn wir all diese Schritte mit einem einzigen Shell-Command erledigen könnten? In den folgenden Abschnitten stelle ich euch ein Skript vor, mit dem ihr viele Anforderungen an ein automatisches Deployment erledigt. Das vollständige beschriebene Skript könnt ihr auf GitHub [1] finden.

Voraussetzungen

Die benötigten Voraussetzungen für so ein Deployment sind gering. Wir benötigen Shopware 5.4 oder aktueller und müssen die Composer-Installation [2] verwenden. Zusätzlich sollte sich PHP 7.0 oder aktueller auf dem Server befinden. Um einen reibungslosen Rollback zu einer vorherigen Version zu ermöglichen, müssen sich alle Entwickler und die Entwickler von Drittanbietersoftware bewusst sein, dass das Blue-Green Deployment umgesetzt wird. Shopware unterstützt dies von Haus aus seit der Version 5.4.

Auf der Serverseite benötigen wir mindestens SSH-Zugriff und eine Verzeichnisstruktur, wie sie in Listing 1 beschrieben ist. Der symbolische Link httpdocs ist als DocumentRoot konfiguriert und verweist auf die aktuell ausgelieferte Softwareversion. Im Verzeichnis media werden alle statischen Daten von Shopware gespeichert. Diese sind wiederum durch einen symbolischen Link im ShopwareDocumentRoot verknüpft.

Listing 1: Verzeichnisstrukturhttpdocs ª 1.0.1 1.0.01.0.1 - media ª ../mediamedia

Blue-Green Deployment

Die Möglichkeit, die Produktivumgebung einfach up- und downgraden zu können, wird allgemein als Blue-Green Deployment bezeichnet. Jede neue Version darf keine destruktiven Änderungen in einem Deploymentschritt ausführen, um einen einfachen Rollback zu ermöglichen. Das bedeutet, dass die neueste Datenbankversion immer noch mit der vorherigen Softwareversion einwandfrei funktionieren muss und es darf durch einen Rollback kein Datenverlust entstehen.

Durch dieses Prinzip benötigt eine Namensänderung an einer Datenbankspalte mindestens drei separat deployte Softwareversionen. In der ersten Version wird eine neue, korrigierte Spalte angelegt. Die Daten aus der alten Spalte werden in die Neue übernommen und durch einen Datenbanktrigger aktuell ...

Neugierig geworden?


   
Loading...

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