Evolution von Legacy-Anwendungen

Legacy-Applikationen als Microservices: Agile Entwicklungsmethoden im Legacy-Umfeld

Mark Cresswell

© Shutterstock / Artur Szczybylo

Sollte man Legacy-Anwendungen neu schreiben, oder gibt es vielleicht eine Möglichkeit, sie ohne größere Probleme in modernere Architektur-Dimensionen vorzudringen? Mark Cresswell, Chief Executive Officer bei LzLabs, zeigt in diesem Artikel, wie man vom klassischen Mainframe zu Microservices kommt und erklärt, was mit „Legacy Container as a Service“ gemeint ist.

Google ist einer der führenden Pioniere im Bereich der Software-Container. Im Jahr 2006 definierten und implementierten zwei Ingenieure bei Google, Paul Manage und Rohit Seith, eine wesentliche Komponente der damals neuen Container-Technologie. Im Jahr 2015 veröffentlichte Google Kubernetes, die Open-Source-Version ihres internen Orchestrations-Tools. In dieser als Borg bekannten Architektur werden die passenden Mechanismen untersucht und definiert, um Container-basierte Workloads für den Gebrauch im Web zu orchestrieren. Google gibt dabei an, zwei Milliarden Container pro Woche, also fast 3.300 jede Sekunde zu starten. Der Suchmaschinen-Riese steht hier jedoch nicht alleine da. Auch für die Kernarchitektur von Amazon, Facebook, Twitter, Netflix und viele weitere sind Container die Basis.

Container und Modernisierung

Der Vorteil am Einsatz von Containern ist, dass sie die Time-to-Market wesentlich verkürzen, da sie sich schneller implementieren lassen. Diese Technologie wird daher die digitale Evolution ganzer Unternehmensbereiche antreiben, denn Innovation erfolgt durch die kontinuierliche Bereitstellung neuer und verbesserter Software. Dies ist bei Amazon rund 50 Millionen Mal im Jahr der Fall.

Beim Vergleich dieser Entwicklungsrate mit der eines Unternehmens, das immer noch von Legacy-Anwendungen abhängig ist, stellt sich die Frage, wie oft in einer Mainframe-Infrastruktur, die eine Backend-Funktion für digitale Internetdienste bietet, die Altsysteme im Jahr aktualisiert werden. Bei Best-in-Class-Unternehmen ist dies einmal im Quartal der Fall. Auf diese Weise wird es sehr schwierig mit den im Webzeitalter entstanden Unternehmen Schritt zu halten oder gar gegenüber den Webgiganten aufzuholen.

Dies können Unternehmen mit einer klassischen auf Mainframes basierten IT allerdings durch eine Containerlösung für ihre Anwendungen überwinden. Hier kommt der Software Defined Mainframe (SDM) ins Spiel – in Kombination mit dessen Nutzung innerhalb von Containern. Dieser ermöglicht es Unternehmen mit Legacy-Mainframe-Anwendungen, die Vorteile von Containern zu nutzen, die Agilität zu steigern und dabei die bestehende Geschäftslogik als Services oder Microservices darzustellen.

Die heutigen Internet-Giganten sind deswegen so schnell bei der Einführung neuer oder aktualisierter Dienste, weil diese einen kleinen bis sehr kleinen Umfang aufweisen. Das Motto „Go big or go home“ gilt eben nicht immer. Services oder Microservices sind hier kleine Softwarepakete, die darauf ausgelegt sind, sich auf eine kleine Anzahl oder sogar nur eine einzelne Funktion beim Abarbeiten von Geschäftsprozessen zu spezialisieren. Die Grenzen und Abhängigkeiten dieser Microservices sind sehr klar; sie werden durch ihre Kommunikation mit anderen Microservices über das Netzwerk definiert. Amazon hat kürzlich bekannt gegeben, dass mehrere hundert Microservices auch beim einfachsten Kauf auf ihrer Website genutzt werden.

DevOpsCon Istio Cheat Sheet

Free: BRAND NEW DevOps Istio Cheat Sheet

Ever felt like service mesh chaos is taking over? As a follow-up to our previous cheat sheet featuring the most important commands and functions, DevOpsCon speaker Michael Hofmann has put together the 8 best practices you should keep in mind when using Istio.

Container – Ein Weg zur Agilität?

Diese klaren Grenzen reduzieren den notwendigen Umfang von Tests drastisch und vereinfachen selbige dadurch. Eine kleine, einzelne Funktion ermöglicht automatisierte Tests, die in der Folge die Effizienz der Anwendungsentwicklung signifikant steigert. Auch die Durchführung automatisierter Tests für den Austausch von Funktionalität während des laufenden Betriebs wird risikoloser.

Mit einer einfacheren und funktional eingeschränkten Software, die vollständig von automatisierten Testlösungen unterstützt wird, sind Unternehmen in der Lage, Änderungen in einem kontinuierlichen Bereitstellungsmodus durchzuführen, wobei aufgrund des geringeren Umfangs dieser Microservices das Risiko begrenzt wird.

Legacy-Mainframe-Anwendungen sind ganz anders. Diese großen, komplexen monolithischen Systeme mit vielen Programmen, die alle stark voneinander abhängig sind, müssen über viele Wochen hinweg vollständig getestet werden, damit etwaige Fehler erkannt und behoben werden können.

Microservices – Der Weg zur Moderne

Ein Software Defined Mainframe in einem Container ermöglicht es, Legacy-Systeme an eine modernere und agilere Umgebung anzubinden. Dies geschieht, indem monolithische Strukturen in eine Vielzahl unabhängiger Microservices verwandelt werden, ohne dass am Quellcode Änderungen notwendig wären. Dieser Ansatz ermöglicht es, dass bestehende COBOL-Programme in Microservices heruntergebrochen werden, die mit neuen Anwendungen für mobile und soziale Netzwerke verbunden sind. Das bedeutet, dass Innovation auf den Eckpfeilern des laufenden Geschäfts stattfinden kann.

Die Ausführung des Legacy Codes als Microservices ermöglicht zudem, sie für moderne digitale Geschäftslösungen weiter- und wiederzuverwenden. Zum Beispiel können Banken mit Zehntausenden oder Millionen von COBOL-Codezeilen ihre Funktionen so, wie sie bereits existieren, verwenden. Die Notwendigkeit, sie in einer anderen Programmiersprache neu zu schreiben, entfällt. Daher können Unternehmen die Legacy-Programme, die einem bestimmten fest umrissenen Zweck dienen, diese als separaten Microservice anbieten. Er ist daher isolierbar und auch zukünftig in neuen Anwendungsszenarien problemlos einsetzbar.

Im Wesentlichen sollte eine derartige Lösung automatische Anwendungsanalyse-Techniken nutzen, um alle Programme, die für die Bereitstellung des Geschäftsbetriebs erforderlich sind, eindeutig zu klassifizieren und als Microservice bereitstellen zu können. Diese Komponenten werden noch in ihrer binären Mainframe-Form in den SDM integriert.

Zusammen mit den notwendigen Linux-Paketen und der Docker-Technologie werden die Module zu einem eigenständigen Microservice gebündelt, der im „Legacy Container-as-a-Service“ (LCaaS) eingesetzt werden kann. Optimalerweise wird die Anwendungsanalyse jedes Mal automatisch durchgeführt, wenn Änderungen am Anwendungsprogramm in das Quellcode-Repository übertragen werden. Diese wiederkehrende Analyse sollte erkennen, ob sich Abhängigkeiten geändert haben, etwa im Fall eines neuen Copybooks oder eines anderen Call Trees. Bei Bedarf sollte sie den Satz von Komponenten neu definieren, die für die nächste Version des Microservice zusammengepackt werden sollen. Die Erstellung des Docker-Images erfolgt bestenfalls automatisch, um die Container-Image-Registry nach dem Update des COBOL-Anwendungsprogramms mit der neuesten Version zu befüllen. Die entsprechende LCaaS-Plattform sollte dann transparent die automatisierte Bereitstellung dieser neuen Version vornehmen.

Die kontinuierliche Weiterentwicklung von Software ist der Innovationtreiber schlechthin im Zeitalter der digitalen Transformation. Eine LCaaS-Lösung ermöglicht dabei die Weiterverwendung von älteren Software-Assets innerhalb sehr dynamischer und sich schnell entwickelnder Dienste und schützt bereits erfolgte Investitionen in die Abbildung von Geschäftsprozessen in der Informationstechnik.

Geschrieben von
Mark Cresswell

Mark Cresswell ist Chief Executive Officer von LzLabs und leitet die Entwicklung des LzLabs Software Defined Mainframe. Darüber hinaus ist er Gründer und Vorsitzender von Scalable, einem privaten Unternehmen im Bereich Software Asset Management. Vor seiner Tätigkeit bei Scalable war Cresswell CEO von NEON Systems, Inc., einem auf Software zur Mainframe-Integration spezialisierten Unternehmen und war zudem Geschäftsführer von Framesoft, einem Schweizer Privat-Unternehmen, das Lösungen für den Investmentbanking-Markt entwickelte.

Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: