Modernisierung

So bringen Sie Legacy-Anwendungen in die Cloud

29.11.2019
Von  , und
Dr. Karsten Ballüder ist Director bei der Deloitte Consutling GmbH


Sophia-Luise Pietsch ist Consultant bei der Deloitte Consulting GmbH


Björn Langmack ist Managing Director bei Deloitte Consulting LLP, US
Alte Mainframe-Anwendungen mit ihren monolithischen Architekturen sind oft noch das Rückgrat, über das die meisten Transaktionen abgewickelt werden. In einem Umfeld, das auf agile Entwicklung, Microservices und Cloud-Deployments setzt, stehen sie der Digitalisierung im Weg.
Viele IT-Abteilungen schleppen ein schweres Erbe mit sich herum: Alte Mainframe-Anwendungen, die immer noch gebraucht werden und nun mit in die Zukunft genommen werden müssen. Fragt sich nur wie?
Viele IT-Abteilungen schleppen ein schweres Erbe mit sich herum: Alte Mainframe-Anwendungen, die immer noch gebraucht werden und nun mit in die Zukunft genommen werden müssen. Fragt sich nur wie?
Foto: Fred Mantel - shutterstock.com

Es gibt viele Möglichkeiten, Legacy-Anwendungen in moderne Architekturen zu integrieren. Der gängigste Ansatz ist die Verbindung über APIs und Konnektoren. Das Grundproblem bleibt aber die Behäbigkeit monolithischer Mainframe-Anwendungen und deren zugrundeliegenden Datenbanken, die hohen Kosten und das Fehlen von Experten. Um zu einer modernen Plattform zu kommen, die Vorteile von Cloud-Ansätzen zu nutzen und die Kostenziele des Managements zu erreichen, sind neue Modernisierungsstrategien notwendig.

Wurden die IT-Ziele in den letzten Jahren häufig durch Outsourcing oder harte Verhandlungen mit externen Providern und Herstellern erreicht, ist nun ein Umbruch nötig. Ein häufig zu beobachtender Lösungsweg ist dabei die Transformation des Sourcecodes, da Standardsoftware als Ersatz nicht in Frage kommt und das Neuschreiben als zu riskant gilt.

Viele Tools für Codeanpassung verfügbar

Doch auch die Transformation der Mainframe-Anwendungen und damit die Restrukturierung des Codes ist eine Herausforderung. Glücklicherweise ist in den letzten Jahren viel in diesem Bereich passiert, so dass Werkzeuge und Methoden zur Verfügung stehen, mit denen das Problem effizient und risikoarm gelöst werden kann.

Bei der Migrationsstrategie für das Anwendungsportfolio gilt es abzuwägen: Einerseits möchten die Verantwortlichen auf der Basis der individuellen Applikationen über den sinnvollsten und strategisch besten Modernisierungsansatz entscheiden. Zum anderen gilt es, zu viele unterschiedliche Ansätze zu vermeiden, um effizient zu bleiben und die Chance auf Skaleneffekte nicht einzubüßen.

Der Schlüssel zum Erfolg besteht darin, sinnvolle Anwendungs-Cluster zu definieren, die jeweils mit einem einheitlichen Ansatz modernisiert werden können. Mit Blick auf das Applikationsportfolios hat sich eine Sortierung in folgende vier Cluster bewährt:

  • Retire - obsolete Anwendungen, die nicht weiter betrieben werden sollten oder müssen;

  • Retain - Anwendungen die in ihrer derzeitigen Form sinnvoll weiter betrieben werden können;

  • Replace - Anwendungen mit weiterhin sinnvoller Funktionalität, die aber durch andere Anwendungen (vorhandene oder neue) ersetzt werden sollten; häufig unter Einsatz von Standardlösungen und

  • Rework - Anwendungen mit weiterhin sinnvoller Funktionalität, die zum weiteren Betrieb und zur Weiterentwicklung auf eine neue Plattform gebracht werden sollten und dort tiefgreifend modernisiert werden können.

Die Zuordnung der Anwendungen zu diesen Clustern erfolgt anhand von Kriterien, die sowohl technische Aspekte (Wartbarkeit, Skalierbarkeit, Nutzung von Framework-Effizienzen) als auch Business-Case- Betrachtungen (Betriebskosten, funktionale Kritikalität, Kosten/Nutzen) berücksichtigen.

Mehrere Strategien für Replace und Rework

Bei den Strategien Replace und Rework gibt es verschiedene Lösungsansätze. Im Allgemeinen unterscheiden wir zwischen den folgenden drei Strategien:

  • Standardsoftware: Sie ist immer dann vielversprechend, wenn die Geschäftsprozesse einfach auf die Anwendung übertragen werden können und die Differenz zwischen der angebotenen Funktionalität und den Anforderungen der Abteilung gering ist. Eine Gap-Analyse zur Ermittlung der Lücken ist deshalb unerlässlich.

  • Neuentwicklung: Bei Anwendungen, deren Funktionalität hochspezialisiert oder nicht frei am Markt verfügbar ist, und sie auch nicht in den anderen eingesetzten Anwendungen vorhanden ist, sollte eine Neuentwicklung erwogen werden. Dieser Ansatz ist kosten- und zeitaufwändig, er birgt das größte Risiko. Ebenso entstehen hier hohe Belastungen für die Fachabteilungen, die bei der Definition von Anforderungen mitwirken müssen. Sinnvoll erscheint dieser Ansatz, wenn sich ein Geschäftsmodell grundlegend ändern soll, beispielsweise weg von klassischen Versicherungspolicen und hin zu einem Insurance-on-Demand-Modell

  • Code-Transformation: Dieser Ansatz basiert auf einer Tool-gestützten Transformation der Anwendung auf eine moderne Plattform (etwa Java oder .NET). Hierdurch kann die Logik und Funktionalität der Anwendung bewahrt und gleichzeitig der Weg für eine umfassende, Tool-gestützte Modernisierung bereitet werden. Auch ein Re-hosting auf günstigeren Plattformen wird dadurch ermöglicht. Diese Variante verhindert außerdem ungeplante Abschreibungen im Falle der Ablösung der Altanwendungen.

So beflügeln Sie Fachkräfte

Bislang wurde vor allem dort gehandelt, wo Legacy-Anwendungen durch Standardsoftware ersetzt werden konnten. Das, was heute noch auf Mainframe-Umgebungen läuft, lässt sich in der Regel nur über Neuentwicklung oder Transformation der Anwendung modernisieren. Im Abwägen zwischen diesen beiden Optionen zeigt die Praxis, dass meistens die Transformation den besseren Business Case liefert und auch eine schnellere Modernisierung hin zu einer Cloud-nativen Architektur ermöglicht.

Von der Transformation zur Cloud

Die Transformation von Legacy-Anwendungen zu einer modernen Programmiersprache ist die Grundlage für eine Migration in die Cloud. Auf Basis der transformierten Technologieplattform lässt sich die funktional unveränderte Legacy-Anwendung in der Cloud bereitstellen. Von einer solchen transformierten "Cloud-Ready"-Anwendung ist der Schritt zu einer Cloud-native-Anwendung eher klein und evolutionär. Moderne Cloud-Plattformen bieten ein Ökosystem an Frameworks und Komponenten, die eingesetzt werden können, um die Anwendung Schritt für Schritt zu erneuern und auf eine moderne Cloud-Architektur umzustellen.

Als besonders attraktiv hat sich erwiesen, dass die Teile der transformierten Anwendung zuerst modernisiert werden können, die den größten Vorteil für das Business bringen. So lassen sich quick wins erzielen und Ressourcen optimal verwenden. Die Ergebnisse solcher Transformationen sind häufig überraschend. Wenn es die Rahmenbedingungen erlauben und die praktisch unbegrenzte Rechenleistung der Cloud-Plattformen durch Parallelisierung genutzt werden kann, lassen sich beispielsweise Batch-Laufzeiten drastisch reduziert und gleichzeitig die Kosten senken.

Sie beschäftigen sich mit der Modernisierung von Legacy-Anwendungen? Weitere Inhalte und Tipps finden Sie hier:

Kontinuierliche Modernisierung

Als Methode empfiehlt sich das von Gartner als "kontinuierliche Modernisierung" bezeichnete Verfahren, das eine schnelle, risikoarme, vollautomatische Code- und Datenmigration mit der Möglichkeit kombiniert, ohne Unterbrechungen zu modernisieren, um die gewünschte Zielarchitektur zu erreichen.

Die Stärke des Ansatzes liegt darin, dass alle Komponenten immer in gewohnter Weise verfügbar bleiben. Gleichzeitig bringen die Migrationstools eine automatisierte Testsuite mit, die hilft, Regressionsfehler auch nach Abschluss des Projekts zu vermeiden. Im Rahmen der Modernisierung werden dabei von der Cloud-Plattform bereitgestellte Standardfunktionen eingebunden und die Entwicklung auf agiles Vorgehen unter Nutzung von DevOps-Methoden umgestellt.

Ein Vorteil dieser Lösung ist auch, dass die Modernisierung dort vorgenommen werden kann, wo sie den größten Nutzen bringt. Das ist wichtig, da in der Regel nur 30 Prozent der Anwendung regelmäßig genutzt und modifiziert werden. Dieses Vorgehen kann auch dazu eingesetzt werden, einzelne Komponenten einer Anwendung auszukoppeln und in die Cloud zu verlagern. So lassen sich Auslastungsspitzen der Altsysteme reduzieren. Entsprechend können ungenutzte Kapazitäten abgekündigt und Betriebskosten gespart werden.

Unser Fazit: Kombination von Handlungsoptionen

Unternehmen sollten auch im Backend die vorhandenen Assets, zu denen auch die selbstgeschriebenen Anwendungen gehören, sorgfältig bewerten und modernisieren. Risiken bestehen dabei in unzureichenden Entwicklerressourcen, schlecht beschriebenen Prozessen sowie den üblichen Projektrisiken. Einen goldenen Weg zur Ablösung von über Jahrzehnte gewachsenen monolithischen Anwendungen gibt es nicht. Erfolgreiche Beispiels zeigen aber, dass die Tool-gestützte Modernisierung von Altsystemen in vielen Fällen der sicherste Weg zu einer modernen Cloud-Architektur ist.