Hinweis: Dieser Blogbeitrag stammt aus der Zeit vor dem Zusammenschluss und wurde von ARS realisiert – heute Teil von ATVANTAGE. Unsere Erfahrung bleibt – nur unser Name hat sich geändert. Hier finden Sie weitere Informationen rund um die Fusion.

Lesezeit: 2 Minuten


Migration von HOST-Anwendungen zu AWS: Modernisierung und Integration


Dieser Blog-Artikel beschreibt, wie man eine bestehende HOST-Anwendung in die Public Cloud migriert, unternehmenskritische Daten weiterhin auf dem Mainframe speichert und dem Kunden dennoch eine moderne, cloud-native Serverless-Anwendung zur Verfügung stellt.

Warum?

Legacy-Systeme sind nicht zwingend Altlasten, sondern vielmehr wertvolles Erbe. Diese Systeme sind häufig seit Jahren im Einsatz, erfüllen zuverlässig ihren Zweck, sind erprobt und haben für das Unternehmen einen hohen Business-Value. Viele dieser „Altanwendungen“ bestehen im Kern aus einer oder mehreren PL/I-Anwendungen auf dem IBM-Mainframe, wobei die Daten häufig über eine IBM Message Queue an den Host übertragen werden. Als User-Interface kommt eine klassische JSP-Anwendung zum Einsatz, die auf einem traditionellen WebSphere-Applikations-Server deployt ist.
Es gilt zunächst zu entscheiden, welche Teile der Altanwendung übernommen und welche neu entwickelt werden sollen. Unternehmen möchten, teilweise aus rechtlichen Vorgaben, die Datenspeicherung und -haltung nicht in die Hände der Cloud-Provider legen. Daher bleibt der Kern der Anwendung inklusive der Datenhaltung am Host, während die restlichen Komponenten in einer modernen, REST-basierten Cloud-native-Anwendung bei AWS neu entwickelt werden.

Serverless bei AWS



Das Hauptziel der Neuentwicklung ist die Nutzung der Serverless-Dienste des Cloud-Providers. Zentrale Komponenten sind vor allem die AWS-Lambdas, die die Backend-Funktionalitäten für Serverless-Anwendungen darstellen. Da bisherige Anwendungen im Backend-Bereich sehr häufig mit Java EE bzw. Jakarta EE entwickelt werden, empfiehlt es sich, die Entwicklung der Lambdas mit dem Java-Framework Quarkus durchzuführen. Mithilfe sogenannter nativer Builds kann die Startgeschwindigkeit der Java-Anwendungen sogar beim Kaltstart der Lambdas signifikant reduziert und bestehender Business-Code übernommen werden.
Bei Nichtverwendung werden die Anwendungen beendet und nur bei Bedarf neu gestartet. Dies reduziert die Kosten und ermöglicht eine starke horizontale Skalierung. Als Frontend-Framework kommt, wie bei vielen modernen REST-basierten Anwendungen, Angular zum Einsatz. Die statischen Artefakte werden durch einen Build-Server, beispielsweise Jenkins, in einem S3-Bucket abgelegt. Die Auslieferung der Frontend-Anwendung erfolgt über CloudFront, einem Content Delivery Network (CDN).



Login-Aufrufe der Anwendung werden über ein API-Gateway zum Identity-Provider weitergeleitet, welcher bei korrekten Anmeldedaten ein Bearer-JWT (JSON-Web-Token) ausstellt. Dieses Token wird bei allen weiteren REST-Aufrufen im Authorization-Header mitgesendet, sodass die Backend-Services die Autorisierung überprüfen können.
Mithilfe des AWS-Services „Direct Connect“ wird eine dedizierte Verbindung zwischen AWS und dem On-Premise-Netzwerk, in dem sich der Host befindet, hergestellt. Die Benutzereingaben werden zunächst im Frontend überprüft und über ein API-Gateway an die Lambda übertragen. Hier können, wie im klassischen Backend, weitere Validierungen und Orchestrierungen durchgeführt werden. Anschließend werden die Daten über die direkte Verbindung an den Host übertragen und dort von den erprobten PL/I-Programmen verarbeitet und persistiert. Nach erfolgreicher Verarbeitung kann dem Benutzer beispielsweise ein PDF mit seinen erfolgreich verarbeiteten Daten mithilfe einer weiteren Lambda zum Download zur Verfügung gestellt werden.
Durch die Nutzung von Infrastructure as Code (IaC) mittels Terraform Enterprise kann die Provisionierung der AWS-Komponenten vereinfacht und revisionssicher gestaltet werden.

FAZIT

Der vorliegende Artikel zeigt auf, wie moderne AWS-Services in eine bestehende Host-Landschaft integriert werden können. Die Kosten, sowohl bei der Entwicklung als auch im Betrieb, sind dabei verhältnismäßig gering, da durch den Einsatz von Quarkus bestehendes Java-Know-how sowie Teile des Business-Codes wiederverwendet werden können. Durch die schnelle Ausführungszeit der Lambdas reduzieren sich die Kosten, da das Abrechnungsmodell von AWS Lambdas nur die Ausführungszeit berechnet.

Blogautor

Andreas Maier
Softwareentwickler ARS Computer und Consulting GmbH

Ihr Erfolg ist unser Ziel

Stehen Sie vor komplexen IT-Projekten? Mit unserer Expertise bieten wir Ihnen maßgeschneiderte Lösungen. Erfahren Sie mehr.

Werde Teil unseres Teams

Wir suchen ständig nach neuen Talenten. Für dich haben wir genau die richtige Stelle. Schau dir unsere offenen Positionen an.

Noch Fragen? Wir helfen Ihnen gerne!

Blog 11.08.23

AWS Lambda: Erste Schritte mit Java

In diesem Artikel lernen wir, was die Vorteile bei der Verwendung von AWS Lambda sind u. wie wir Java-Code in AWS-Lambda installieren und ausführen können.

Blog 19.09.24

Die Zukunft datenbankzentrierter IT-Architekturen

Datenbankzentrierte IT-Architekturen prägen viele Unternehmen. Doch ist dieser Ansatz noch zukunftsfähig? Dieser Artikel beleuchtet die Herausforderungen und Alternativen.

Blog

Der Cloud vorgelagert: Edge Computing für Datenanalysen

Sicherheitsbedenken und Performance-Engpässe gestalten die Verarbeitung und Analyse von Daten in der Cloud zunehmend schwierig. So spricht einiges für eine Zwischenschicht: den Edge.

Branche

Digitaler Wandel in der Öffentliche Verwaltung

Die digitale Transformation wird die Arbeitswelt gerade in der öffentlichen Verwaltung massiv verändern. Wir unterstützen die Behörden von Bund, Ländern und Kommunen bei der strategischen und technischen Umsetzung ihrer Projekte in der Verwaltungsmodernisierung.

Blog 05.10.23

AWS Lambda vs. AWS Fargate

Entdecken Sie die Unterschiede zwischen Serverless-Technologie und Container-Technologie und erfahren Sie, wie AWS Lambda und AWS Fargate von Amazon Web Services diese Ansätze unterstützen.

Blog 24.10.24

DevOps und APIOps in der Praxis: Best Practices

Wie lassen sich DevOps und APIOps erfolgreich kombinieren? In diesem Artikel erfahren Sie, welche Best Practices und Erfolgsfaktoren moderne Softwareentwicklung schneller und skalierbarer machen.

Blog 05.09.24

Effiziente DevOps-Teams: Teamschnitte und Kommunikation

Durch gezielte Teamschnitte und optimale Kommunikationsmodi wird die kognitive Last in DevOps-Teams reduziert. Für effizientere Zusammenarbeit und kontinuierlichen Fortschritt.

Blog 10.10.24

DevOps? Warum APIOps der nächste logische Schritt ist

APIOps erweitert DevOps-Praktiken auf APIs, um deren Entwicklung zu automatisieren und zu optimieren. Dieser Ansatz verbessert Qualität, Sicherheit und Geschwindigkeit im API-Management.

Blog 23.08.24

"DevOps, quo vadis?" – Team Topologien

Erfahren Sie, wie Team-Topologien in DevOps Silos aufbrechen und erfolgreiche Zusammenarbeit fördern. Entdecken Sie die vier fundamentalen Teamarten.

Schild als Symbol für innere und äußere Sicherheit
Branche

Innere und äußere Sicherheit

Verteidigungskräfte und Polizei müssen Bürger*innen und den Staat vor immer neuen Bedrohungen schützen. Moderne IT- & Softwarelösungen unterstützen dabei.

Blog 02.02.23

Computer Aided Cloud Transformation

Was bedeutet Computer aided cloud transformation? Warum ist Enterprise Architecture Management wichtig? Wie gelingt das Asset- und Ressourcenmanagement?

Blog 16.02.23

Keine Angst vor Komplexität

Wie kann man die Komplexität der Organisation u. Technologie, die neue Plattformen, Architekturen und neue Entwicklerkultur mit sich bringen, beherrschen?

Blog 27.10.22

Architekturarbeit im Zeitalter Cloud-nativer Architekturen 1

Die beschleunigte Digitalisierung und ihr Einfluss auf Softwarearchitekturen und IT-Teams beschreibt der Autor. Sind Cloud-native-Strategien sinnvoll?

Blog 19.01.23

Digitalisierung und das richtige Mindset

Digitalisierung erfordert Umdenken weg von Projekten hin zu Produkten. DevOps und offene Fehlerkultur bestimmen moderne IT-Organisationen - auch bei Ihnen?

Blog 05.01.23

Teil 6 - Die Architektenrolle in DevOps-Teams/Organisationen

Erfahren Sie in diesem Blogbeitrag mehr über die Rolle der Architekten in DevOps-Teams und wie sich die Architekturarbeit im cloud-native Umfeld verändert hat.

Blog 10.11.22

Architekturarbeit im Zeitalter Cloud-nativer Architekturen 2

Aufgaben von Softwarearchitekten im Cloud-native-Umfeld, benötigte Skills und ihr Arbeitsalltag zwischen Kundenanforderungen, Zieldefinition und Deadlines.

Blog 08.12.22

Teil 4: Eigenschaften einer Cloud-native Architektur

Beitrag zu Cloud-native Architekturen, ihre Möglichkeiten und Zielsetzungen sowie die Philosophie und Arbeitsweise, die daraus folgt.

Blog 30.03.23

Eine API kommt selten allein - APIs in der freien Wildbahn

API's als Produkt zu verstehen ist ein Merkmal agiler Arbeitsweise. API's sind immer im Kontext des geplanten Services und des Ökosystems zu betrachten.

Blog 22.12.22

Teil 5 - Einfluss von Cloud-native auf die Architekturarbeit

Wir beleuchten technische Aspekte von cloud-native Architekturen, die Vorteile verteilter Systeme und wie wichtig API-Management-System ist.

Blog 16.03.23

Bedeutung von APIs als Interaktionsmodell

APIs sind mehr als Schnittstellen, sie sind Teil der Interaktion zwischen Geschäftspartnern. Eine API First Strategie schafft echte Wertschöpfung.