Altanwendungen modernisieren
Die Tool-gestützte Aufbereitung von Individualsoftware hilft, im Cloud-Zeitalter anzukommen.
Die Tool-gestützte Modernisierung von individuell entwickelten Altanwendungen ist eine Voraussetzung, um im Cloud-Zeitalter anzukommen. Manchmal ist es auch der richtige Weg, Altanwendungen einfach auszumustern oder durch Standardsoftware zu ersetzen. Aber das ist nur begrenzt möglich.
Historisch gewachsene Anwendungen mit ihren häufig monolithischen Architekturen sind auch in der modernen IT oft noch das unverzichtbare Rückgrat, über das die meisten Transaktionen abgewickelt werden. Oft laufen sie noch auf Mainframes. In einem Umfeld, das auf agile Entwicklung, Microservices und Cloud-Deployments setzt, stehen sie einer Digitalisierung meist im Weg.
Es gibt viele Möglichkeiten, Altanwendungen 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 der ihnen zugrunde liegenden 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.
Sourcecode transformieren
Wurden die IT-Ziele in den letzten Jahren häufig durch Outsourcing oder harte Verhandlungen mit externen Providern und Herstellern erreicht, ist nun ein veritabler 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 bewertet wird. Doch auch die Transformation der Mainframe-Anwendungen und damit die Restrukturierung des Codes ist eine Herausforderung. Glücklicherweise ist in der jüngeren Vergangenheit in diesem Bereich viel geschehen, 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 Applikationsportfolio 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 so, wie sie sind, weiterbetrieben werden können;
Replace – Anwendungen mit wichtiger Funktionalität, die aber durch andere Anwendungen (vorhandene oder neue) ersetzt werden können – häufig durch 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.
Bei den Strategien Replace und Rework gibt es verschiedene Lösungsansätze. Im Allgemeinen unterscheidet man 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 und auch nicht in den anderen eingesetzten Anwendungen vorhanden ist, sollte eine Neuentwicklung erwogen werden. Dieser Ansatz ist kosten- und zeitaufwendig, 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.
Codetransformation: 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, Toolgestützte Modernisierung bereitet werden. Auch ein Rehosting auf günstigeren Plattformen wird dadurch ermöglicht. Diese Variante verhindert außerdem ungeplante Abschreibungen im Falle der Ablösung der Altanwendungen. 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 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 der entsprechenden Applikationen 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 reduzieren und gleichzeitig die Kosten senken.
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 Migrations-Tools 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 DevOpsMethoden 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 werden und entsprechend modifiziert werden müssen. 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.
Kombination von Handlungsoptionen
Unternehmen sollten auch im Backend die vorhandenen Assets, zu denen 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 Beispiele zeigen aber, dass die Tool-gestützte Modernisierung von Altsystemen in vielen Fällen der sicherste Weg zu einer modernen Cloud-Architektur ist.