Zum Inhalt springen

Leistung

Software modernisieren: Altsysteme ablösen, Laravel aktuell halten

Software wird nicht schlechter. Ihre Umgebung zieht weiter. Irgendwann bleiben die Sicherheitsupdates aus, und ab da hat jemand anderes den Termin gesetzt.

Was Softwaremodernisierung praktisch heißt

Der Begriff klingt größer, als die Arbeit meistens ist. In den allermeisten Fällen geht es nicht darum, eine Anwendung neu zu erfinden, sondern sie wieder auf einen Stand zu bringen, auf dem sie gepflegt werden kann. Vier Ebenen sind dabei zu unterscheiden, und sie hängen voneinander ab:

  • Die Framework-Version. Laravel selbst auf eine Fassung heben, die noch Korrekturen bekommt. Das ist der sichtbarste Teil und selten der aufwendigste.
  • Die PHP-Version darunter. Häufig der eigentliche Engpass. Eine alte PHP-Version blockiert neuere Pakete, und der Hoster setzt irgendwann eine Frist.
  • Die Abhängigkeiten. Fremde Pakete, die seit Jahren niemand mehr pflegt, müssen ersetzt oder übernommen werden. Diese Entscheidung fällt einzeln, nicht pauschal.
  • Die Umgebung. Server, Datenbank, Deployment. Wer nur die Anwendung migriert und die Umgebung stehen lässt, hat den Termin nur verschoben.

Wenn jemand fragt, ob wir seine Software migrieren können, meint er meistens eine dieser Ebenen und weiß noch nicht, welche. Das herauszufinden ist der erste Arbeitsschritt, und er kostet weniger, als die meisten annehmen.

Der Punkt, an dem es dringend wird

Solange eine Anwendung läuft, sieht man ihr das Alter nicht an. Auffällig wird es woanders. Ein Paket lässt sich nicht mehr aktualisieren, weil es eine neuere PHP-Version verlangt. Der Hoster kündigt an, eine alte PHP-Version abzuschalten. Eine Sicherheitsmeldung betrifft eine Abhängigkeit, für die es in Ihrer Version keine Korrektur mehr gibt.

Alle drei haben eines gemeinsam. Sie kommen mit einer Frist, die jemand anderes gesetzt hat. Deshalb plant man ein Upgrade besser, als dass man es einholen lässt.

Wie wir vorgehen

Am Anfang steht die Bestandsaufnahme. Installierte Version, Abhängigkeiten, Testabdeckung, Stellen mit eigenwilligen Lösungen. Daraus wird ein Plan mit einer Reihenfolge, in der jede Etappe für sich einen Nutzen hat und die Anwendung danach läuft.

Über mehrere Hauptversionen springt niemand in einem Satz. Nach jeder Etappe wird getestet, automatisiert wo es Tests gibt und von Hand wo nicht. Kommt eine Anwendung ganz ohne Tests bei uns an, bauen wir zuerst ein Sicherheitsnetz für die Stellen, an denen ein Fehler richtig wehtut. Alles andere wäre Blindflug.

Altsysteme ablösen

Eine gewachsene Anwendung ohne Framework löst man selten mit einem großen Umschaltmoment ab. Verlässlicher ist ein Vorbau. Anfragen laufen künftig zuerst gegen die neue Anwendung, die anfangs fast alles an das Alte durchreicht. Dann übernehmen wir Bereich für Bereich, bis nichts mehr durchgereicht wird.

Auf dem Papier dauert das länger als ein Neubau. Dafür gibt es keinen Tag, an dem alles gleichzeitig funktionieren muss. Wer so einen Tag einmal erlebt hat, versteht sofort, warum wir ihn vermeiden.

Zeitstrahl eines Versionssprungs: Bestandsaufnahme, drei Etappen und der Livegang. Unter jeder Etappe steht „Tests bestanden“; ein roter gestrichelter Pfeil führt vom Livegang zurück zum Anfang und ist mit „Rückweg, zu jeder Etappe geprobt“ beschriftet.
Ein Versionssprung in Etappen. Nach jeder Etappe ist die Anwendung lauffähig und wird getestet, und zu jeder Etappe gehört ein geprobter Rückweg. Den einen Tag, an dem alles gleichzeitig funktionieren muss, gibt es so nicht.

Im Detail

Wege, die wir gehen

  • Bestandsaufnahme

    Welche Version läuft, welche Abhängigkeiten hängen fest, wo hat jemand kreativ improvisiert. Ohne dieses Bild ist jede Schätzung geraten.

  • Versionssprung

    Laravel Etappe für Etappe auf eine gepflegte Version heben. Zwischen den Etappen läuft die Anwendung.

  • PHP-Version nachziehen

    Oft steckt der Engpass gar nicht im Framework, sondern in der PHP-Version darunter. Beides hängt zusammen und wird zusammen geplant.

  • Ablösung von Altsystemen

    Eine gewachsene Anwendung ohne Framework ersetzt man nicht am Stück. Wir leiten Bereich für Bereich um, bis vom Alten nichts mehr übrig ist.

  • Datenübernahme

    Wiederholbare Übernahmeskripte statt Handarbeit. So lässt sich der Umzug proben, bevor es ernst wird.

  • Rückweg

    Zu jeder Etappe gehört der Weg zurück. Ein Umstieg ohne Rückfallebene ist eine Wette. Wetten gehören nicht in den Betrieb.

Weitere Leistungen

Passt vielleicht auch

FAQ

Fragen zur Migration

Unsere Anwendung läuft auf einer alten Laravel-Version. Wie schlimm ist das?
Das Entscheidende ist nicht die Zahl, sondern ob die Version noch Sicherheitsupdates bekommt. Laravel dokumentiert für jede Hauptversion, wie lange sie Fehlerbehebungen und wie lange sie Sicherheitskorrekturen erhält. Läuft dieses Fenster ab, bleiben gemeldete Lücken offen. Dann wird aus einer Aufgabe, die man planen konnte, eine, die drängt.
Muss die Anwendung dafür stillstehen?
In aller Regel nicht. Wir arbeiten in einer Kopie, testen dort und spielen den fertigen Stand in einem kurzen Fenster ein. Nur bei größeren Datenumbauten ist ein geplantes Wartungsfenster nötig, und dann steht der Termin vorher fest.
Lohnt sich ein Upgrade oder gleich ein Neubau?
Diese Frage beantworten wir nach der Bestandsaufnahme, nicht davor. Als Faustregel: Wenn die Fachlogik trägt und nur die Technik veraltet ist, ist das Upgrade fast immer günstiger. Wenn die Anwendung fachlich am Ziel vorbeigeht, verlängert ein Upgrade nur das Problem.
Wir wollen von einem CMS auf eine eigene Anwendung wechseln. Geht das schrittweise?
Ja, und meistens ist das der bessere Weg. Einzelne Bereiche werden auf die neue Anwendung umgeleitet, während der Rest im Bestand bleibt. Wichtig ist dabei, die Adressen der alten Seiten sauber weiterzuleiten, damit weder Besucher noch Suchmaschinen ins Leere laufen.

Unsicher, in welchem Zustand Ihre Anwendung ist?

Wir sehen sie uns an und sagen Ihnen, was drängt und was warten kann. Das Ergebnis ist eine Liste mit Reihenfolge, keine Verkaufsunterlage.