software-wartung24.de
· 7 Min. Lesezeit· Sandor Farkas

Container-Migration für Legacy-Anwendungen: Docker und Kubernetes als Modernisierungsbrücke

ModernisierungDockerKubernetesHostingLegacy Grundlagen
Abstraktes Titelbild zum Thema Container-Migration für Legacy-Anwendungen: Docker und Kubernetes als Modernisierungsbrücke (KI-generiert)

Ihr Server heißt "web02" und steht seit 2016 im Rechenzentrum. Auf ihm läuft eine PHP-Anwendung, die niemand mehr neu aufsetzen könnte. Welche Pakete installiert sind, weiß nur der Server selbst. Der Kollege, der ihn eingerichtet hat, arbeitet inzwischen woanders. Wenn web02 stirbt, stirbt die Anwendung mit.

Eine Container-Migration für Legacy-Anwendungen ist für genau solche Fälle gedacht. Die Software bleibt, wie sie ist. Sie zieht nur um: aus dem historisch gewachsenen Server in einen Container, der sich jederzeit neu bauen lässt. Ein Container ist dabei ein abgeschlossenes Paket aus Anwendung, Laufzeitumgebung und allen Abhängigkeiten. Docker ist das bekannteste Werkzeug dafür.

Dieser Artikel erklärt, was eine Container Migration bei Legacy-Software leistet und was nicht. Und wie der Einstieg in der Praxis aussieht.

Was ein Container bei alter Software wirklich ändert

Heute lebt Ihre Anwendung auf einem Server, dessen Zustand sich über Jahre ergeben hat. Updates hier, ein manuell installiertes Modul da, eine Konfigurationsdatei, die jemand 2019 per Hand angepasst hat. Nichts davon steht in einem Dokument.

Bei einer Containerisierung schreiben Sie diesen Zustand auf. Das Dockerfile ist eine Textdatei mit allen Schritten: Welches Betriebssystem, welche PHP-Version, welche Erweiterungen, welche Konfiguration. Aus dieser Datei baut Docker den Container. Immer gleich, auf jedem Rechner.

Das hat drei praktische Folgen.

Erstens wird der Server austauschbar. Fällt web02 aus, starten Sie den Container auf einer anderen Maschine. Die Anwendung merkt keinen Unterschied.

Zweitens bekommen Entwickler eine echte Testumgebung. Bisher hieß es oft: "Auf meinem Rechner läuft es nicht, nur auf dem Server." Mit einem Container läuft auf dem Laptop dieselbe Umgebung wie in der Produktion. Fehler lassen sich reproduzieren, statt sie im laufenden Betrieb zu suchen.

Drittens wird das Deployment, also das Ausrollen einer neuen Version, zu einem wiederholbaren Schritt. Kein FTP-Upload mehr um 22 Uhr, bei dem man hofft, keine Datei vergessen zu haben.

Wichtig dabei: Der Code ändert sich nicht. Eine Legacy Software aus dem Jahr 2012 bleibt eine Legacy Software aus dem Jahr 2012. Sie läuft nur in einer Verpackung, die man versteht.

Was Containerisierung nicht löst

Hier wird oft zu viel versprochen. Ein Container macht Ihre Software nicht sicherer, nicht schneller und nicht moderner. Er macht sie reproduzierbar. Das ist viel wert, aber es ist nicht dasselbe.

Läuft die Anwendung auf PHP 5.6, läuft sie im Container weiterhin auf PHP 5.6. Die Sicherheitslücken dieser Version reisen mit. Ein Container schützt nicht vor einem Angriff über eine bekannte Schwachstelle im Code. Er begrenzt höchstens den Schaden, weil der Angreifer im Container landet und nicht direkt auf dem Server.

Auch die technischen Schulden im Code bleiben. Unlesbare Funktionen, fehlende Tests, hart verdrahtete Datenbank-Zugangsdaten: Das alles zieht mit um. Manchmal wird es sogar sichtbarer, weil das Dockerfile jeden Sonderfall ehrlich aufzählen muss.

Und dann ist da Kubernetes. Kubernetes verwaltet viele Container auf vielen Servern, verteilt Last und startet abgestürzte Container neu. Für eine einzelne Legacy-Anwendung mit ein paar hundert Nutzern ist das meistens zu viel Werkzeug. Der Betrieb eines Kubernetes-Clusters braucht eigenes Wissen und eigene Wartung. Wer diesen Aufwand nicht stemmen kann, tauscht ein undokumentiertes Problem gegen ein komplexes.

Unsere Empfehlung in den meisten Fällen: Erst Docker. Kubernetes nur dann, wenn es einen konkreten Grund gibt, etwa mehrere Anwendungen, die gemeinsam skalieren müssen.

Was passiert, wenn Sie nichts tun

Der Server web02 wird älter. Irgendwann läuft der Support für sein Betriebssystem aus. Der Hoster kündigt die Hardware-Generation ab. Dann müssen Sie umziehen, und zwar unter Zeitdruck.

Ein Umzug ohne Dokumentation ist ein Ratespiel. Man kopiert Dateien, installiert Pakete nach Gefühl und testet, bis es irgendwie läuft. Was dabei vergessen wird, fällt Wochen später auf. Der Export-Job, der nur nachts läuft. Das Modul für die PDF-Erzeugung, das eine bestimmte Schriftart braucht.

Wir haben solche Notfall-Umzüge begleitet. Sie kosten ein Vielfaches von dem, was eine geplante Containerisierung gekostet hätte. Und sie kosten Nerven, weil das Geschäft in dieser Zeit stillsteht.

So läuft eine Container-Migration in der Praxis

Der Ablauf ist bei fast allen Legacy-Anwendungen ähnlich. Er dauert je nach Größe zwischen zwei Tagen und drei Wochen.

Schritt 1: Den Server ausgraben

Zuerst schauen wir, was auf dem Server tatsächlich läuft. Welche Prozesse, welche Cron-Jobs, welche installierten Pakete, welche Umgebungsvariablen. Das ist Detektivarbeit. Oft finden sich Dinge, von denen niemand mehr wusste. Am Ende steht eine Liste, die zur Grundlage des Dockerfiles wird.

Schritt 2: Zustand von Code trennen

Ein Container soll jederzeit weggeworfen und neu gestartet werden können. Deshalb darf er keine Daten in sich speichern. Uploads, Logs, Session-Dateien und die Datenbank müssen nach außen. Das ist bei alter Software der aufwendigste Schritt. Viele Anwendungen schreiben munter in ihr eigenes Verzeichnis. Hier muss man Pfade anpassen oder Verzeichnisse per Volume nach außen leiten, also als dauerhaften Speicher außerhalb des Containers einbinden.

Schritt 3: Konfiguration herauslösen

Datenbank-Passwort, SMTP-Server, API-Schlüssel: In Legacy-Code stehen diese Werte oft direkt in einer PHP-Datei. Für den Container gehören sie in Umgebungsvariablen. Das ist eine kleine Codeänderung mit großer Wirkung. Dieselbe Container-Version läuft dann in Test und Produktion, nur mit anderen Werten.

Schritt 4: Bauen, testen, vergleichen

Jetzt wird der Container gebaut und neben dem alten Server gestartet. Wir vergleichen das Verhalten: Gleiche Seiten, gleiche Ausgaben, gleiche Cron-Ergebnisse. Erst wenn beide Systeme identisch reagieren, schalten wir um.

Schritt 5: Umschalten und alten Server behalten

Der Wechsel selbst dauert Minuten. Der alte Server bleibt danach noch einige Wochen erreichbar, als Rückfallebene. Danach wird er abgeschaltet. Dann hat web02 seinen Dienst getan.

Der Container als Brücke, nicht als Ziel

Der eigentliche Nutzen der Containerisierung zeigt sich danach. Sobald die Anwendung reproduzierbar läuft, werden weitere Schritte einfacher.

Ein PHP-Upgrade lässt sich im Container gefahrlos testen: Man ändert eine Zeile im Dockerfile, baut neu und sieht, was bricht. Neue Dienste lassen sich als eigene Container daneben stellen. Wer die Anwendung schrittweise ablösen will, findet im Strangler-Fig-Pattern einen passenden Weg. Dabei wachsen neue Komponenten neben der alten Anwendung, bis diese überflüssig wird. Container sind dafür die technische Grundlage.

Auch die Frage nach dem Hosting wird leichter. Ein Container läuft beim eigenen Hoster, in der Cloud oder bei einem Dienstleister, der Managed Hosting für Legacy-Projekte anbietet. Der Umzug zwischen diesen Optionen ist kein Projekt mehr, sondern ein Nachmittag.

Wer sich fragt, wo Containerisierung im Vergleich zu Neuentwicklung oder Refactoring steht, findet im Überblick der Modernisierungsstrategien eine Einordnung. Kurz gesagt: Sie ist der günstigste erste Schritt, weil sie das größte Risiko zuerst beseitigt, nämlich den Server, den keiner versteht.

Wann eine Container-Migration nicht passt

Es gibt Fälle, in denen wir abraten. Wenn die Anwendung in wenigen Monaten sowieso abgeschaltet wird, lohnt der Aufwand nicht. Manche Anwendungen sind tief mit dem Betriebssystem verwoben, etwa über Windows-Dienste oder Hardware-Zugriff. Dort wird die Containerisierung teuer und bringt wenig. Und wenn niemand die Container später betreiben kann, entsteht nur ein neues Wissensproblem.

In allen anderen Fällen ist die Container Migration für Legacy-Systeme eine solide Investition mit überschaubarem Risiko. Der Code bleibt unangetastet, die Anwendung läuft weiter, und Sie gewinnen die Kontrolle über Ihre Infrastruktur zurück.

Fazit: Erst verpacken, dann sanieren

Eine Container-Migration räumt nicht im Code auf. Sie sorgt dafür, dass Sie überhaupt gefahrlos aufräumen können. Wer seine Legacy-Anwendung in Docker verpackt, tauscht einen undokumentierten Server gegen eine Textdatei, die alles beschreibt. Das ist die Voraussetzung für jeden weiteren Modernisierungsschritt.

Wenn Ihre Anwendung noch auf einem Server läuft, den niemand neu aufsetzen könnte, sprechen Sie uns an. Wir schauen gemeinsam, ob Containerisierung der richtige erste Schritt ist und was er kostet. Das Erstgespräch ist kostenlos. Mehr zu unserem Vorgehen finden Sie auf der Seite Software-Modernisierung.

Weitere Artikel

Abstraktes Titelbild zum Thema Altsysteme stilllegen: Wann und wie man sich von Legacy-Software trennt (KI-generiert)
· 5 Min. Lesezeit

Altsysteme stilllegen: Wann und wie man sich von Legacy-Software trennt

Nicht jedes Altsystem muss gewartet oder modernisiert werden. Manchmal ist die beste Entscheidung, Altsysteme stillzulegen. Dieser Artikel zeigt, wann sich das Abschalten lohnt und wie es ohne Datenverlust und böse Überraschungen gelingt.

ModernisierungLegacy GrundlagenKosten & Planung
Abstraktes Titelbild zum Thema Legacy system KI-Integration: Was KI-Agenten bei altem Code wirklich leisten (KI-generiert)
· 7 Min. Lesezeit

Legacy system KI-Integration: Was KI-Agenten bei altem Code wirklich leisten

Legacy system KI-Integration ist 2026 in aller Munde. KI-Agenten können Altcode analysieren, dokumentieren und schrittweise modernisieren. Dieser Artikel zeigt nüchtern, was wirklich geht und wo menschliche Expertise unverzichtbar bleibt.

KI & ModernisierungLegacy GrundlagenModernisierung
Abstraktes Titelbild zum Thema Vendor Lock-in bei Altsoftware: Wenn man vom Hersteller abhängig ist (KI-generiert)
· 6 Min. Lesezeit

Vendor Lock-in bei Altsoftware: die Abhängigkeit

Vendor Lock-in bedeutet: Sie können nicht wechseln, selbst wenn Sie wollten. Bei alter Software ist diese Abhängigkeit besonders teuer. Dieser Artikel erklärt, wie sie entsteht und wie man sich schrittweise daraus befreit.

Kosten & PlanungLegacy GrundlagenModernisierung

Bereit, Ihre Software in gute Hände zu geben?

Das Erstgespräch ist kostenlos und unverbindlich. Wir schauen uns an, was Sie haben, und sagen Ihnen ehrlich, was möglich ist.

Kostenlose Erstberatung anfragen