Alle Fallstudien

B2B SaaS · Mittelstand

Symfony 2 → 7 Modernisierung ohne Feature-Freeze

Migration einer 700k-Zeilen-Doctrine-1.x-Codebasis über 14 Monate ohne Produktionsstillstand. Inkrementeller Strangler-Pattern-Ansatz mit kontinuierlichen Feature-Releases.

Branche
B2B SaaS · Mittelstand
Dauer
14 Monate
Stack
PHP, Symfony, Doctrine

Ergebnisse auf einen Blick

  • −63 % Build-Zeit
  • −41 % P95-Latenz
  • Null produktionsrelevante Regressionen
  • Kein Produktionsstillstand während der Migration

Ausgangslage

Ein B2B-SaaS-Produkt aus dem deutschen Mittelstand lief auf Symfony 2 mit Doctrine 1.x. Die Codebasis war auf rund 700.000 Zeilen gewachsen. Symfony 2 und Doctrine 1.x werden schon lange nicht mehr gepflegt, der Stack bekam also keine Sicherheitsupdates mehr.

Rahmenbedingungen

  • Kein Feature-Freeze. Neue Features mussten weiter ausgeliefert werden, während die Migration lief.
  • Kein Produktionsstillstand. Das System musste während der gesamten Migration verfügbar bleiben.

Vorgehen

Statt eines Neuschreibens folgte die Migration dem Strangler-Fig-Ansatz: Die alte Anwendung lief in Produktion weiter, während sie Schritt für Schritt auf den neuen Stack umzog. Weil die Migration inkrementell lief, gingen Feature-Releases über die ganzen 14 Monate weiter.

Das Strangler-Fig-Pattern löst ein Altsystem Stück für Stück ab. Neuer Code übernimmt einen Bereich, der Traffic für diesen Bereich wandert dorthin, und der alte Code wird entfernt, sobald sich der neue Weg bewährt hat. So schrumpft das Altsystem, bis nichts mehr davon übrig ist. Mehr zur Methode:

Ergebnisse

  • Build-Zeit um 63 % gesenkt.
  • P95-Latenz um 41 % gesenkt. P95 ist die Antwortzeit, die 95 % der Anfragen unterschreiten. Sie zeigt also, was die langsameren Anfragen erleben, nicht nur den Durchschnitt.
  • Null produktionsrelevante Regressionen.
  • Kein Produktionsstillstand in den 14 Monaten.

Stack und Dauer

PHP, Symfony (von Version 2 auf 7) und Doctrine (ab 1.x). Das Projekt lief 14 Monate.

Ähnliche Herausforderung?

Wenn eines dieser Probleme bekannt klingt, sprechen wir.

Kontakt aufnehmen