Ihre Herausforderungen bei der Modernisierung Ihrer Anwendungen

Ihre Geschäftsleitung redet von Digitalisierung, von Innovation, von mehr Geschwindigkeit und mehr Flexibilität? Sie sind aufgefordert, permanent Kosten zu senken und immer umfangreichere Compliance-Regeln einzuhalten?

Auf der anderen Seite kämpfen Sie mit einer ausufernden Menge unterschiedlicher Anwendungen die schwer zu integrieren sind? Sie betreiben monolithische Anwendungen, die sich am Ende ihres Lebenszyklus befinden? Ihre Infrastruktur ist starr und unterstützt neue Geschäftsfelder nur ungenügend? Und natürlich müssen alle vorhandenen Systeme trotz aller Änderungen stabil laufen?

Konflikt zwischen Business und IT.Quelle: eigene Darstellung

Willkommen in der harten Realität. Das alles unter einen Hut zu bekommen, ist ein schwieriger Spagat.

Schauen wir uns die Herausforderungen im Detail an:

  • Sie tragen die Verantwortung für eine Reihe von Bestandssystemen, die mittlerweile schwer wartbar geworden sind.
  • Teile Ihres Anwendungsportfolios sind historisch gewachsen, verfügen über zahlreiche Schnittstellen zu anderen Bestandssystemen, und sind technologisch in die Jahre gekommen.
  • Einzelne Bestandteile Ihrer geschäftskritischen Anwendungen erhalten (bald) keinen Support mehr vom jeweiligen Komponenten-Hersteller.
  • Neue Integrationen zwischen den Bestandssystemen, die vom Fachbereich permanent gefordert werden, sind nur noch schwer umzusetzen oder gar unmöglich geworden.
  • Erweiterungen der fachlichen Funktionalität sind sehr kostspielig, da aufwändig.
  • Sie haben viele verschiedenen Anwendungen – sowohl vorhandene Monolithen als auch neue cloud-native Microservices – die für Ihr Unternehmen wichtig sind, die aber verstreut in Ihrem Unternehmen in Ihr Geschäftsmodell eingebunden wurden.

Bereits 2008 hat Gartner auf die Notwendigkeit einer Agilisierung des Applikations-Portfolios hingewiesen: Jede neue Anwendung wird in das Geschäftsmodell eingebunden. Ohne „aktives” Management wird das Applikations-Portfolio daher zu einem schwereren Anker und verhindert ein agiles und flexibles Unternehmen. Die aktuelle Marktsituation und der vorherrschende Wettbewerbsdruck in Richtung Digitalisierung sowie Agilität der IT sorgen dafür, dass der von Gartner zitierte „schwere Anker” heute noch mehr Gewicht hat. Sie sind also nicht alleine mit dieser Herausforderung: Wir alle sind genau wie Sie täglich damit konfrontiert.

Für Sie ist eine Individualsoftwareentwicklung keine Option? Mit einer Anwendungsmodernisierung können Sie Ihre bestehenden Anwendungen verjüngen, so dass diese nicht mehr länger ein Klotz am Bein bei den anstehenden Veränderungen sind. Denn mit der Modernisierung Ihrer Applikationen können Sie diese in beliebige Clouds verschieben und dort ausführen. Wir empfehlen dabei eine behutsame, aber entschlossene Modernisierung der Altanwendung mit Hilfe unserer Spezialisten!

Ihre Vorteile bei der Anwendungsmodernisierung

Sie wollen Ihr Unternehmen digitalisieren, aber dafür keine neue Software entwickeln? Dann ist eine Anwendungsmodernisierung der richtige Weg!

Durch eine Modernisierung Ihrer bestehenden Anwendungen erhalten Sie eine System-Landschaft, die einerseits zukunftsfähig ist und die Sie andererseits nicht neu in Ihr Unternehmen einführen müssen. Wo zuvor jede Erweiterung eines bestehenden Systems nur unter großen Schmerzen möglich war, schaffen Sie mit der Anwendungsmodernisierung die Möglichkeit, neue Funktionen wieder einfach zu integrieren. Damit können Sie flexibel auf den Markt reagieren und neue Geschäftsmodelle einführen.

Anwendungsmodernisierung ist ein Ansatz, um Ihre bestehenden Anwendungen im Unternehmen schneller, effizienter und flexibler zu machen.

Dabei müssen Sie nicht gleich ein neues System entwickeln lassen, sondern nutzen die bereits bestehende Anwendungslandschaft und gleichzeitig die Vorteile technischer Innovationen.

Sparen Sie darüber hinaus bares Geld: Mit einem Cloud-basierten Hosting und den entsprechenden Betriebskonzepten fahren Sie fast immer kostengünstiger! Denn wenn Ihre Anwendungen in der Cloud laufen, kann das eigene Rechenzentrum eingespart oder zumindest verkleinert werden. Und Sie bezahlen nur genau für die Leistung, die Sie auch benötigen.

Reduzieren Sie Ihre Betriebskosten durch den Einsatz moderner Methoden wie beispielsweise DevOps und Site Reliability Engineering. Oder ist es Ihnen wichtig regulatorische Vorgaben einzuhalten? Eine Anwendungsmodernisierung ermöglicht die Befolgung von Compliance-Regeln oder die Berücksichtigung neuer Vorschriften in Ihren Altanwendungen.

Wir kennen uns aus mit der Modernisierung von Altanwendungen und helfen Ihnen gerne!

Bevor wir Ihnen unsere Vorgehensweise für die Migration in eine modernere System-Landschaft vorstellen, wollen wir Ihnen die Funktionsweise einer Anwendungsmodernisierung genauer erläutern.

Die Funktionsweise einer Anwendungsmodernisierung

Anwendungsmodernisierung kann auf ganz unterschiedliche Arten durchgeführt werden. Grundlage einer Entscheidung, wie wir Ihre Anwendungen modernisieren, ist zum einen, wie lange das Leben einer Anwendung verlängert werden soll, wie hoch der geschäftliche Nutzen der Anwendung noch ist, und natürlich die Technologie, mit der die betroffene Anwendung realisiert wurde. Diese Randbedingungen gemeinsam mit einigen weiteren Fragestellungen geben dann die möglichen Wege vor.

Uns gefällt die Kategorisierung der Migrationswege von Gartner Research sehr gut: Die 2010 ursprünglich beschriebenen 5 Optionen, die 5 strategischen R’s für Anwendungsmigration, haben sich im Lauf der Jahre verändert. So sieht Gartner Research seit 2018 sieben Optionen um Altanwendungen zu modernisieren. Allerdings sind wir überzeugt davon, dass Anwendungsmodernisierung mit modernen Methoden sich nicht auf eine der 7 Möglichkeiten beschränken muss.

Es gilt vielmehr auch hier der Grundsatz, durch iteratives Vorgehen den für die jeweilige Komponente der Anwendung besten Ansatz zum passenden Zeitpunkt zu finden. So beginnen wir beispielsweise in einem ersten Schritt mit einem Replatforming, um dann durch schrittweises Refactoring und teilweises Rebuilding der Anwendungskomponenten das Zielbild zu erreichen.

Mögliche Wege und deren Auswirkungen im Einzelnen

Encapsulate

Encapsulate – Kapselung – ist der Grundgedanke hinter der API Ökonomie und der Rettungsanker für viele, häufig monolithische Altanwendungen. Die in den Altanwendungen enthaltene Geschäftslogik wurde in der Regel mit sehr viel Aufwand implementiert. Wir erhalten den Kern der Geschäftslogik und kapseln diese hinter modernen (REST-)APIs. Dies legt die Grundlage für eine schrittweise Modernisierung – Sei es durch einen Umbau der Altanwendung oder durch Ergänzung von neuen Services, die vollkommen transparent für die Konsumenten der APIs im Hintergrund entstehen.

Daneben wird mit diesem Ansatz Geschäftslogik über Anwendungsgrenzen hinweg wiederverwendbar für Ihr Unternehmen zur Verfügung gestellt. Dies kann in Form einer neuen webbasierten grafischen Benutzungsoberfläche erfolgen, über die etwa Funktionen einer Altanwendung nutzbar gemacht werden, oder durch die Unterstützung mobiler Endgeräte für eine Bestandsanwendung.

Eine bewährte Vorgehensweise bei der Kapselung ist die Anwendung des Strangler Pattern: Hierbei migrieren wir Ihr Altsystem inkrementell, indem wir Teile der Funktionalität nach und nach durch neue Anwendungen und Dienste ersetzen. Durch das fortgesetzte Austauschen von Features ersetzt das neue System schließlich alle Funktionen des Altsystems, wodurch dieses außer Betrieb genommen werden kann.

Rehost

Bei dieser Option der Anwendungsmodernisierung wird die bereits implementierte Kernanwendung nicht verändert, sondern lediglich auf eine neue Hosting Umgebung bewegt. Sie fragen warum? Manchmal ist dies eine betriebsbedingte Notwendigkeit, wenn beispielsweise Rechenzentren geräumt oder umgebaut werden. Häufiger ist es eine Lebensversicherung für die Altanwendung, die auf einer modernen Cloud-Plattform kostengünstiger, flexibler, leichter skalierbar und sicherer betrieben werden kann als in der Altumgebung.

Dieser Ansatz wird häufig auch als Lift&Shift bezeichnet. Wir helfen Ihnen gerne bei der Auswahl einer geeigneten Cloud Plattform. Beispiele für die Lift&Shift Methode sind VMware P2V Migrationen oder VM Export/Import. Liegt die Altanwendung bereits in einer Container-Architektur vor, wird dieser Schritt deutlich erleichtert. Wir verstehen unter Rehosting aber auch den Wechsel des Applikationsservers, oder eine Host-zu-Linux Migration Ihrer Anwendung.

Replatform

Leicht mit dem Rehosting zu verwechseln, erlauben wir beim Replatforming geringe Eingriffe in den Code der Altanwendung. Diese Eingriffe verändern die bereits implementierte und getestete Geschäftslogik nicht, sondern dienen dazu, die Anwendung an eine neue Laufzeitumgebung anzupassen. Beispiele sind etwa eine Migration von Oracle Weblogic zu Apache Tomcat, oder eine Umstellung der Anwendung von einer Oracle DB auf eine deutlich elastischere, flexiblere und in der Regel auch kostengünstigere Open-Source RDBMS-Lösung wie MySQL oder PostgreSQL.

Refactor

Refactoring gehört zum Standard-Werkzeugkasten unserer Software-Entwickler, da diese Technik auch in der Individualsoftwareentwicklung regelmäßig zum Einsatz kommt. Unter Refactoring verstehen wir die manuelle oder teilautomatisierte strukturelle Verbesserung von Softwarecode unter Beibehaltung des Verhaltens der Anwendung. Eine zwingende, wenn auch nicht immer hinreichende Vorbedingung für wirksames Refactoring ist ein hoher Abdeckungsgrad der Testautomatisierung des Codes. Refactoring bringt Ihre Anwendung auf ein ganz neues Niveau im Hinblick auf Wartbarkeit, Skalierbarkeit, Portierbarkeit und Sicherheit. Außerdem erhöht Refactoring die Produktivität der Entwicklungsteams nachhaltig.

Refactoring erfolgt bei uns immer nach dem Nordstern-Prinzip: wir modernisieren nicht willkürlich, sondern verfolgen ein konkretes Zielbild. Im Fall der Anwendungsmodernisierung hat sich als Zielbild das der 12-factor App bewährt. Außerdem helfen wir Ihnen, jede Anwendung uneingeschränkt in Containern lauffähig zu machen.

Durch Refactoring werden auch die Grundlagen für ein Rearchitecting Ihrer Anwendung geschaffen, in dem wir beispielsweise die vorhandene Codebasis in Frontend-, Backend-, und (Micro-)Service-Komponenten zerlegen, sowie lange liegengebliebene technische Schulden begleichen.

Rearchitect

Hier denken wir die Architektur Ihrer Anwendung neu – Dabei ist Rearchitecting in gewisser Weise die Voraussetzung für viele der übrigen hier beleuchteten Optionen.

Wir wollen bei der Anwendungsmodernisierung zum einen die grundsätzlichen funktionalen Eigenschaften der Anwendung bewahren; zum anderen ist ein „Alles genauso wie vorher” Ansatz nicht immer empfehlenswert, da sonst Optionen zur Prozessverbesserung und Digitalisierung Ihrer Geschäftsprozesse verpasst werden. Mittels Rearchitecting ändern wir Ihre Anwendung in der Weise, dass wir sie auf eine neue Anwendungsarchitektur übertragen können. Diese neuen Architekturpotentiale ermöglichen die Steigerung der Resilienz Ihrer Anwendung und die Senkung der Betriebs- und Wartungskosten. Mehr zu den Möglichkeiten beim Rearchitecting finden Sie bei unserem Beratungsangebot Application Architecture.

Rebuild

Sollten die anderen Optionen zu kurz greifen oder in ihren Möglichkeiten bereits ausgeschöpft sein, bleibt in sehr vielen Fällen der Weg einer Modernisierung mittels des Neubaus einer Anwendungskomponente. Im Unterschied zu einer kompletten Individualsoftwareentwicklung orientieren wir uns in diesem Fall aber immer noch an den funktionalen Anforderungen, die den Altkomponenten zugrunde lagen. Damit wird sich die neue Komponente nahtlos in ein bestehendes Netzwerk an Schnittstellen einfügen – Denken Sie dabei etwa an den kompletten Austausch eines defekten Motors, während Fahrwerk und Karosserie erhalten bleiben.

Replace

Die Option der Ersetzung der Anwendung bezieht sich, um im vorherigen Beispiel zu bleiben, eher auf den Neukauf eines Automobils als auf das Ersetzen einzelner Komponenten. Man geht beim Replacement davon aus, die nach wie vor gültigen funktionalen Anforderungen der Altanwendung am sinnvollsten durch eine vollständig neue Lösung bedienen zu können. Sie ahnen es schon: für die neue Lösung stellt sich wieder die Make or Buy Frage. Sollte Ihre Antwort „Make“ lauten, stehen wir Ihnen gerne mit Beratung und Individualsoftwareentwicklung zur Seite.

Wie bereits erwähnt umfasst eine Anwendungsmodernisierung in den seltensten Fällen nur eine der aufgezählten Optionen. Ein sehr typisches Beispiel einer Migration zeigt die nachfolgende Abbildung, in der Elemente von Rearchitect, Refactor, Encapsulate und Rebuild zu einem runden Gesamtkonzept für die schrittweise Überführung einer monolithischen in eine modulare Service-Struktur kombiniert werden:

Kombination von Optionen für die Anwendungsmodernisierung.Quelle: eigene Darstellung

Jedes Altsystem ist anders. Lassen Sie uns daher gemeinsam die beste Vorgehensweise für die Modernisierung Ihrer Altanwendung auswählen und dazu die optimale Kombination und Reihenfolge der Optionen auswählen!

Unsere Dienstleistungen für Anwendungsmodernisierung

Für die Anwendungsmodernisierung haben wir die nachfolgend skizzierte Vorgehensweise entwickelt. Basierend darauf haben wir bereits zahlreiche Bestandssysteme erfolgreich modernisiert.

  1. Zu Beginn einer Anwendungsmodernisierung setzen wir uns mit Ihnen zusammen und sprechen über Ihre Ideen, Visionen, Zweck und Ziele der Modernisierung. Wir erarbeiten daraufhin ein Zusammenarbeitsmodell, damit Sie immer transparent wissen, in welcher Phase des Projektes wir uns befinden, welche Ziele schon erreicht sind und welches die nächsten Ziele sind. Außerdem stellen wir ein Team zusammen, welches Ihren Anforderungen entspricht und die Modernisierung Ihrer Anwendungen schnell voran bringt.
  2. Im nächsten Schritt analysieren wir gemeinsam mit Ihnen das Bestandssystem und arbeiten einen Migrationsplan mit definierten Migrationsschritten und Meilensteinen aus. Dazu wählen wir aus den vorhandenen Optionen für die Anwendungsmodernisierung die für Sie beste Kombination aus.
  3. Anschließend erfolgt die schrittweise Umsetzung. Dies bedeutet, dass Sie jederzeit eine lauffähige Anwendung haben, aber bei jeder Iteration bereits einzelne Teile modernisiert und verbessert wurden. Mit diesen Voraussetzungen gelingt uns der unterbrechungsfreie Betrieb Ihrer Software. Durch schnelles Produktiv-setzen können wir gemeinsam Feedback einholen und dieses in die weiteren Migrationsschritte einfließen lassen.
  4. Parallel zur Modernisierung der Anwendung kümmern wir uns um die infrastrukturellen Voraussetzungen. Dazu setzen wir beispielsweise die Buildpipeline inkl. Testautomatisierung und automatisierten Deployments auf und kümmern uns um die automatische Provisionierung der Umgebungen. Zu jeder Zeit stellen wir einen reibungslosen Betrieb der Anwendung durch DevOps und Methodiken des Site Reliability Engineerings sicher.

Wie Sie sehen, ermöglicht diese Vorgehensweise einen nahtlosen Übergang von Ihrer Altanwendung in die neue Welt.

Ihr Fachbereich bleibt produktiv und Sie haben am Ende eine modernisierte Anwendung, an der Sie wieder Freude haben – Lassen Sie uns loslegen!

Ihre Ansprechpartner

Novatec_Markus-Mueller

Markus Müller

Director Software Engineering

Dominik Meyer

Managing Director
Inhaltsverzeichnis
Markus Müller Director Software Engineering
Novatec_Markus-Mueller