Software-Modernisierung in PHP

Das Fallbeispiel beschreibt die Modernisierung eines veralteten PHP-Buchungssystems für Schiffsbesuche.

Branche: Kreuzfahrten

Aufgabenstellung: Modernisierung eines Software-Systems für das Planen und Buchen von Tages- und Kabinenbesuchen auf Kreuzfahrtschiffen.

Programmiersprache: PHP 5, JavaScript

Datenbank: MySQL, Microsoft SQL Server

Architekturstil: Zwei PHP-Monolithen, Datenaustausch über die Datenbank

Betriebsplattform: Linux, Windows, Apache

Warum Software-Modernisierung?

Die beiden Software-Monolithen sind mehr als 15 Jahre alt. Die Anwendung wurde kontinuierlich angepasst und unterstützt die Geschäftsprozesse gut. Die Software ist wartbar und lässt sich mit vertretbarem Aufwand erweitern und anpassen. Dennoch unterliegt das System einem nicht-trivialen Änderungsdruck, der in der Verwendung veralteter Software- und Betriebssystemversionen begründet liegt. Die daraus resultierenden Änderungstreiber "Sicherheit", "Kosten" und "Rechtliche Vorgaben" sind die primären Treiber des Änderungsdrucks und der Grund für die Software-Modernisierung.

Änderungstreiber "Sicherheit"

Für die verwendeten PHP-, Linux-, MSSQL- und MySQL-Versionen werden seit mehreren Jahren keine Patches mehr geliefert. In der Folge konnten neu entdeckte Sicherheitslücken nicht mehr geschlossen werden. Das Wissen um existierende Sicherheitslücken erzeugt hohen Änderungsdruck.

Ursachen

PHP 5: Der Security-Support der verwendeten PHP-Version 5.3.3 ist zum 31. Dezember 2018 ausgelaufen.

MySQL 5.5: Der Extended-Support der verwendeten MySQL-Version ist am 31. Dezember 2018 ausgelaufen.

MSSQL 2008 R2: Der Support ist im Januar 2020 eingestellt worden.

Debian Linux 6.0.10: Der LTE-Support der eingesetzten Linux-Version ist am 29. Februar 2016 ausgelaufen.

Änderungstreiber "Kosten"

Die Anwendung wurde vor der Modernisierung On-Premises betrieben und vom Betreiber administriert. Die daraus resultierenden Betriebskosten waren zu hoch, insbesondere vor dem Hintergrund, dass die Anwendung sehr wenig Einnahmen generiert hat.

Der resultierende Änderungsdruck war hoch, da sich die Anwendung aufgrund der engen Kopplung an veraltete Betriebssysteme und PHP-Versionen nicht einfach per Lift and Shift in das Rechenzentrum eines Dienstleisters oder die Cloud verschieben ließ.

Ursachen

Hardwarekosten: Die Software wurde auf eigenen Server betrieben, die aufgrund von Verfügbarkeitsanforderungen redundant ausgelegt waren.

Lizenzkosten: Die Lizenzkosten für den eingesetzten MS SQL-Server waren zu hoch.

Personalkosten: Die Kosten für den angestellten Administrator waren zu hoch.

Änderungstreiber "Rechtliche Vorgaben"

Die Anwendung wies Mängel bezüglich der Speicherung und Löschung personenbezogener Daten auf.

Der Änderungsdruck war hoch, da bei DSGVO-Verstößen eine Geldbuße von bis zu 20 Millionen EUR oder bis zu 4 % des weltweit erwirtschafteten Jahresumsatzes im vorangegangenen Geschäftsjahr droht.

Ursachen

DSGVO: Die seit dem Inkrafttreten der DSGVO im Mai 2016 EU-weit geltenden Regeln bezüglich der Löschung personenbezogenen Daten konnte in der Anwendung nicht adäquat umgesetzt werden. 

Modernisierungsstrategie

Das Buchungssystem des Kreuzfahrtanbieters generiert wenig Umsatz, ist aber aufgrund der hohen Werberelevanz und Mitarbeiterbindung von Crew-Mitgliedern ein wichtiges System, das es unbedingt zu erhalten gilt. Die beschlossene Modernisierungsstrategie bestand aus folgenden Kernbereichen:

·       Aktualisierung der Software auf die aktuelle PHP-Version 8.x

·       Einführung des PHP-Frameworks Yii2

·       Einführung der API-Query Language GraphQL

·       Umstellung der verwendeten Datenbanken auf PostgreSQL

·       Umzug in ein externes Rechenzentrum

Aufgrund der monolithischen Anwendungsarchitektur, der Größe der bestehenden PHP-Versionslücke sowie der engen Kopplung an die verwendeten Datenbank-APIs gestaltete sich eine iterative Modernisierung schwierig. Vor dem Hintergrund der überschaubaren Größe des Systems war dessen parallele Neuentwicklung die bessere Alternative, die schließlich innerhalb von nur drei Monaten abgeschlossen werden konnte.