Bearbeiten

Erneutes Entwickeln von Mainframebatchanwendungen in Azure

Azure Data Factory
Azure Databricks
Azure Kubernetes Service (AKS)
Azure SQL-Datenbank
Azure Storage

Anhand dieser Referenzarchitektur wird verdeutlicht, wie Sie mit Azure eine z/OS-Mainframebatchanwendung so neu entwickeln können (Re-engineering), dass Sie ein sicheres, skalierbares und hoch verfügbares System in der Cloud mit Azure erhalten. Aufgrund sich ständig weiterentwickelnder Geschäftsanforderungen müssen Daten und Anwendungen so bereitgestellt und skaliert werden, dass sich keinerlei Auswirkungen auf Ihre Infrastruktur ergeben. Die Neuentwicklung in der Cloud kann es Unternehmen in den Bereichen Finanzen, Gesundheitswesen, Versicherungswesen und Einzelhandel ermöglichen, die Bereitstellungszeiten für ihre Produkte oder Features zu verringern und die Kosten zu senken.

Mainframearchitektur

Im ersten Diagramm ist die Architektur einer typischen Batchanwendung dargestellt, die auf einem z/OS-Mainframe ausgeführt wird.

Diagramm: Typische Batchanwendung, die auf einem z/OS-Mainframe ausgeführt wird

Laden Sie eine Visio-Datei dieser Architektur herunter.

Workflow

  1. Mainframebatchprozesse können zu einem geplanten Zeitpunkt ausgelöst werden, indem ein OPC-Planer (Operation, Planning & Control) verwendet wird. Sie können auch durch eine Nachricht ausgelöst werden, die in eine Nachrichtenwarteschlange eingereiht wird. Dies kann beispielsweise eine Nachricht mit der Ankündigung sein, dass eine Datei erstellt wurde.

  2. Ein Mainframecomputer mit DASD-Speichergerät (Direct Access Storage Device) wird verwendet, um Eingabe- und Ausgabedateien zu speichern. Ein Beispiel hierfür sind Flatfiles, die von der Anwendung benötigt werden. Sie können den Batchprozess auslösen, indem Sie eine Datei im DASD-Speicher erstellen.

  3. Der Batchprozess umfasst die Ausführung einer Reihe von Aufträgen. Ein Beispiel hierfür ist ein Auftrag, bei dem intern ein Benutzer- oder Systemprogramm ausgeführt wird, um eine bestimmte Aufgabe zu erledigen. Batchprozesse werden normalerweise ohne Benutzerinteraktion ausgeführt. Alle Batchaufträge auf einem Mainframecomputer unterstehen der Kontrolle des Job Execution System (JES).

  4. Programme in Batchprozessen können Datenlese- und -schreibvorgänge für die folgenden Komponenten durchführen:

    • Dateibasierte Datenbank, z. B. Virtual Storage Access Method (VSAM)
    • Relationale Datenbank, z. B. Db2 oder Informix
    • Nicht relationale Datenbank, z. B. Information Management System (IMS)
    • Nachrichtenwarteschlange
  5. Die Ausgabe der Auftragsausführung kann über einen OPC-Planer oder Tivoli Workload Scheduler (TWS) überwacht werden. Eine Systemanzeige- und -suchfunktion (System Display & Search Facility, SDSF) im JES wird auf dem Mainframecomputer ebenfalls verwendet, um den Ausführungsstatus von Aufträgen zu überprüfen.

  6. Die Verwaltungsebene verfügt über die folgenden Dienste:

    • Quellcodeverwaltung, z. B. Endevor oder Changeman
    • Sicherheit, z. B. Resource Access Control Facility (RACF). Diese Sicherheitsfunktion ermöglicht die Authentifizierung für die Ausführung von Batches und den Zugriff auf Dateien und die Datenbank.
    • Ausgabeverwaltung, die das Speichern und Durchsuchen von Protokollen zur Auftragsausführung unterstützt

Azure-Architektur

Im zweiten Diagramm ist dargestellt, wie Sie Azure-Dienste verwenden können, um eine ähnliche Anwendung mit zusätzlichen Funktionen und erweiterter Flexibilität neu zu entwickeln.

Diagramm: Batchanwendung, die mit Azure-Diensten neu entwickelt wurde (mehrere Beispieldienste)

Laden Sie eine Visio-Datei dieser Architektur herunter.

Workflow

  1. Verwenden Sie einen der folgenden Trigger, um den Azure-Batchprozess zu starten.

    • Verwenden Sie den Auftragsplaner von Azure Databricks oder den Azure Functions-Planer.
    • Erstellen Sie eine wiederkehrende Batchverarbeitungsaufgabe mit Azure Logic Apps.
    • Verwenden Sie ein Speicherereignis, z. B. die Erstellung oder Löschung einer Datei in Azure-Blobspeicher oder -Dateispeicher.
    • Verwenden Sie einen nachrichtenbasierten Trigger, z. B. das Eintreffen einer Nachricht in Azure Service Bus.
    • Erstellen Sie einen Azure Data Factory-Trigger.
  2. Speichern Sie Dateien, die vom Mainframecomputer migriert wurden, mit Azure Blob Storage oder Azure Files. In Azure neu entwickelte Batchprozesse können für diesen Speicher Datenlese- und -schreibvorgänge durchführen.

  3. Azure verfügt über verschiedene Dienste zum Implementieren einer Mainframe-Batchworkload. Wählen Sie je nach Ihren Geschäftsanforderungen bestimmte Dienste aus. Beispiele hierfür sind die erforderliche Computeleistung, die gesamte Ausführungsdauer, die Möglichkeit zur Unterteilung von Mainframe-Batchprozessen in kleinere Einheiten und eine hohe Kostenempfindlichkeit.

    1. Azure Databricks ist eine Apache Spark-basierte Analyseplattform. Aufträge können in den Sprachen R, Python, Java, Scala und Spark SQL geschrieben werden. Sie erhalten eine Computeumgebung mit kurzen Clusterstartzeiten, automatischer Beendigung und automatischer Skalierung. Die Plattform verfügt über eine integrierte Integration mit Azure-Speicher, z. B. Azure Blob Storage und Azure Data Lake Storage. Verwenden Sie Azure Databricks, wenn Sie große Datenmengen in kurzer Zeit verarbeiten müssen. Diese Plattform ist auch eine gute Wahl, wenn Sie ETL-Workloads (Extrahieren, Transformieren und Laden) ausführen müssen.
    2. Mit AKS und Service Fabric wird eine Infrastruktur zum Implementieren einer dienstbasierten Anwendungsarchitektur bereitgestellt. Dies ist für eine einzelne Anwendung unter Umständen nicht kosteneffizient. Sie können Ihre Mainframeanwendung mit Java Spring Boot umgestalten. Die beste Möglichkeit zum Ausführen von Spring Boot-Apps in Azure ist die Verwendung von Azure Spring Apps (vollständig verwalteter Spring-Dienst). Java-Entwickler können hiermit in Azure ganz einfach Spring Boot-Microservices erstellen und ausführen.
    3. Sie können Ihre Mainframebatchanwendung mit .NET oder Java neu entwickeln. Batch verfügt über die Infrastruktur zum Ausführen dieser Anwendung im großen Stil. Mit dem Dienst wird ein Pool mit virtuellen Computern (VMs) erstellt und verwaltet, die Anwendungen werden installiert, und dann werden die Aufträge zur Ausführung auf den VMs geplant. Es muss keine Cluster- oder Auftragsplanersoftware installiert, verwaltet oder skaliert werden. Schreiben Sie Anwendungen in einer beliebigen Programmiersprache, die von Windows oder Linux unterstützt wird.
    4. Sie können COBOL- oder PL/1-Batchprogramme mit kurzer Ausführungsdauer neu entwickeln. Verwenden Sie für diese Programme Azure-Dienste wie Functions, WebJobs oder Logic Apps.
  4. Azure verfügt über verschiedene Datendienste zum Speichern und Abrufen von Daten.

    • Sie können relationale Mainframedatenbanken, z. B. Db2 und Informix, mit minimalen Änderungen an der Sichtbarkeit der Angebote für relationale Azure-Datenbanken migrieren. Beispiele hierfür sind Dienste für relationale Datenbanken, z. B. virtueller Azure SQL-Computer, Azure SQL-Datenbank oder Azure SQL MI. Sie können auch ein beliebiges Open-Source-RDBMS (Relational Database Management System) wie Azure PostgreSQL verwenden. Die Auswahl einer Azure-Datenbank richtet sich nach dem Typ der Workload, datenbankübergreifenden Abfragen, Anforderungen von Zweiphasencommits und vielen anderen Faktoren.
    • Sie können nicht relationale Mainframedatenbanken, z. B. IMS, Integrated Data Management System (IDMS) oder VSAM, zu Azure Cosmos DB migrieren. Bei Azure Cosmos DB erhalten Sie kurze Antwortzeiten, automatische und sofortige Skalierbarkeit und garantierte Geschwindigkeit in jeder Größenordnung. Dies ist eine kostengünstige Option für unvorhersehbare oder sporadische Workloads aller Größen und Skalierungen. Entwickler können problemlos loslegen, ohne dass sie die Kapazität planen oder verwalten müssen.
    • Sie können Azure Cache for Redis verwenden, um eine neu entwickelte Anwendung zu beschleunigen.
  5. Für Anwendungen, das Betriebssystem und Azure-Ressourcen können Agents verwendet werden, um Protokolle und Metriken an Azure Monitor-Protokolle zu senden.

    • Mit Application Insights wird Ihre migrierte Anwendung überwacht. Der Dienst erkennt Leistungsanomalien automatisch und verfügt über leistungsstarke Analysetools, mit denen Sie Probleme untersuchen können.
    • Azure Log Analytics ermöglicht das Speichern, Indizieren, Abfragen und Ableiten von Analysen aus den erfassten Protokolldaten.

    Sie können die Ausgabe von Log Analytics und Application Insights verwenden, um Warnungen und Dashboards zu erstellen oder einen Export in externe Dienste durchzuführen. Darüber hinaus können Sie die Ausgabe auch verwenden, um eine Aktion wie die Skalierung eines virtuellen Computers durchzuführen.

  6. Diese Ebene verfügt über Azure-Dienste für die Bereiche Quellcodeverwaltung, Sicherheit und Ausgabeverwaltung. Diese Dienste können Azure DevOps und Microsoft Entra ID umfassen.

Komponenten

Netzwerk und Identität

  • Azure ExpressRoute: Mit ExpressRoute können Sie Ihre lokalen Netzwerke über eine private Verbindung eines Konnektivitätsanbieters auf die Cloud von Microsoft ausdehnen. Mit ExpressRoute können Sie Verbindungen mit Microsoft-Clouddiensten herstellen, z. B. Microsoft Azure und Office 365.
  • Azure VPN Gateway: Ein VPN-Gateway ist eine spezielle Art von Gateway für virtuelle Netzwerke, das verwendet wird, um verschlüsselten Datenverkehr zwischen einem virtuellen Azure-Netzwerk und einem lokalen Standort über das öffentliche Internet zu senden.
  • Microsoft Entra ID: Microsoft Entra ID ist ein Identitäts- und Zugriffsverwaltungsdienst, der mit einem lokalen Verzeichnis synchronisiert werden kann.

Anwendung

  • Logic Apps: Logic Apps unterstützt Sie beim Erstellen und Ausführen von automatisierten wiederkehrenden Aufgaben und Prozessen nach einem bestimmten Zeitplan. Sie können Dienste innerhalb und außerhalb von Azure aufrufen, z. B. HTTP- oder HTTPS-Endpunkte. Sie können auch Nachrichten an Azure-Dienste wie Azure Service Bus senden oder Dateien in eine Dateifreigabe hochladen.
  • Service Bus: Sie können Service Bus für den Nachrichtenaustausch zwischen einer Benutzeroberfläche und Back-End-Diensten verwenden. Mit diesem System können Anwendungen und Dienste entkoppelt werden, und Sie können eine Steigerung der Zuverlässigkeit und Nutzung erzielen.
  • Azure Databricks: Azure Databricks ist ein cloudbasiertes Datentechniktool, das zum Verarbeiten und Transformieren großer Datenmengen genutzt wird. Anschließend können Sie diese Daten dann mit Machine Learning-Modellen untersuchen.
  • Azure Spring Apps: Azure Spring Apps vereinfacht die Bereitstellung, Verwaltung und Ausführung von Spring-Microservices in Azur. Der Dienst unterstützt sowohl Java als auch .NET Core.
  • AKS: AKS vereinfacht die Bereitstellung eines Managed Kubernetes-Clusters in Azure, indem der betriebliche Aufwand an Azure ausgelagert wird.
  • Batch: Batch ist für universelles Batchcomputing in der Cloud auf einer größeren Zahl von VMs ausgelegt, die je nach ausgeführter Workload skaliert werden können. Dies passt sehr gut zu ETL- oder KI-Anwendungsfällen, bei denen mehrere Aufgaben parallel und unabhängig voneinander durchgeführt werden.
  • Functions: Verwenden Sie Functions zum Ausführen kleinerer Codeelemente, ohne sich Gedanken über die Anwendungsinfrastruktur machen zu müssen. Mit Functions werden in der Cloudinfrastruktur alle aktuellen Server bereitgestellt, die Sie für die Ausführung Ihrer Anwendung im großen Stil benötigen.
  • Azure App Service: Mit WebJobs, einem Feature von App Service, können Sie wiederverwendbare Hintergrund-Geschäftslogik als Webaufträge codieren.
  • Azure Cache for Redis: Anwendungen mit einer großen Menge an Back-End-Daten können so entwickelt werden, dass eine gute Skalierung möglich ist und eine hochgradig optimierte Leistung erzielt wird, indem eine Integration mit einem In-Memory-Datenspeicher wie Redis durchgeführt wird. Azure Cache for Redis verfügt sowohl über die Redis-Open-Source-Lösung (OSS Redis) als auch über ein kommerzielles Produkt von Redis Labs (Redis Enterprise) als verwalteten Dienst.

Speicher

Azure-Speicher verfügt über mehrere Ebenen mit Daten vom Typ „Heiß“, „Kalt“ und „Archiv“. Indem Sie diese Speicherebenen effektiv nutzen, können Sie einen Preis-Leistungs-Vorteil erzielen.

  • Blob Storage: Skalierbarer und sicherer Objektspeicher für cloudnative Workloads, Archive, Data Lakes, High-Performance Computing und maschinelles Lernen.
  • Azure Files: Einfache, sichere und serverlose Clouddateifreigaben auf Unternehmensniveau. Azure Files kann sich insbesondere bei neu entwickelten Mainframelösungen als nützlich erweisen. Der Dienst verfügt über ein effektives Add-On für den verwalteten SQL-Speicher.
  • Table Storage: Ein NoSQL-Schlüssel-Wert-Speicher für die schnelle Entwicklung mit großen halbstrukturierten Datasets.
  • Azure Queue Storage: Einfache, kostengünstige und stabile Nachrichtenwarteschlangen für große Workloads.
  • Azure SQL: Vollständig verwaltete Dienste für SQL Server. Sie können die relationalen Daten mit anderen Azure-Diensten wie Azure SQL Managed Instance, SQL Server auf virtuellen Azure-Computern und Azure Database for MariaDB effizient migrieren und nutzen.
  • Azure Cosmos DB: Ein NoSQL-Angebot, das Sie zum Migrieren von nicht tabellarischen Daten von den Mainframecomputern verwenden können.

Überwachung

  • Azure Monitor: Azure Monitor ist eine umfassende Lösung für das Sammeln, Analysieren und Behandeln von Telemetriedaten aus Cloud- und lokalen Umgebungen. Sie enthält die Features Application Insights, Azure Monitor-Protokolle und Azure Log Analytics.

Verwaltung

  • Azure DevOps: Ermöglicht die Neuentwicklung (Re-engineering) von Mainframeanwendungen in Azure in allen Phasen der Softwareentwicklung und Teamzusammenarbeit. DevOps verfügt über die folgenden Dienste:

    • Azure Boards: Flexibles Tool für Planung, Nachverfolgung von Arbeitselementen, Visualisierung und Berichterstellung.
    • Azure Pipelines: Eine sprach-, plattform- und cloudagnostische CI/CD-Plattform mit Unterstützung für Container oder Kubernetes.
    • Azure Repos: Ermöglicht die Nutzung von in der Cloud gehosteten privaten Git-Repositorys.
    • Azure Artifacts: Integrierte Paketverwaltung mit Unterstützung für Maven-, npm-, Python- und NuGet-Paketfeeds aus öffentlichen oder privaten Quellen.
    • Azure Test Plans: Eine Lösung für integriertes, geplantes und exploratives Testen.

Szenariodetails

Mainframecomputer werden hauptsächlich für die Verarbeitung großer Datenmengen verwendet. Die Batchverarbeitung ist eine Möglichkeit zum Verarbeiten einer großen Menge von gruppierten Transaktionen und zum anschließenden Durchführen von Massenaktualisierungen für die Datenbank. Nach der Auslösung ist nur eine minimale oder gar keine Benutzerinteraktion mehr erforderlich. Mit Mainframesystemen können Banken und andere Finanzinstitutionen beispielsweise die Verarbeitung am Ende eines Quartals durchführen und Berichte erstellen, z. B. vierteljährliche Aktien- oder Rentenabrechnungen.

Mögliche Anwendungsfälle

Diese Lösung eignet sich ideal für die Finanz-, Versicherungs-, Gesundheits- und Einzelhandelsbranchen. Verwenden Sie diese Architektur, um Mainframeanwendungen in Azure neu zu entwickeln. Die Architektur funktioniert am besten für die folgenden Aufgaben:

  • Ressourcenintensive Mainframebatchanwendungen
  • Batchanwendungen, die zu einem bestimmten Zeitpunkt, z. B. Ende des Monats, Quartals oder Jahrs, viele Computeressourcen benötigen
  • Mainframebatchprozesse, die sich häufig wiederholen und nicht ressourcenintensiv sind, aber ggf. von externen Systemen genutzt werden müssen

Überlegungen

Verfügbarkeit

  • Für die Batcharchitektur in diesem Artikel werden das Computing mit mehreren Knoten bzw. PaaS-Dienste zur Erzielung von Hochverfügbarkeit verwendet.
  • Für Azure-Datenbankdienste wird die Zonenredundanz unterstützt. Sie können sie so entwerfen, dass ein Failover auf einen sekundären Knoten ausgeführt wird, wenn es zu einem Ausfall kommt oder ein Wartungsfenster ansteht.

Skalierbarkeit

  • Die folgenden Azure-Dienste in dieser Architektur verfügen über Funktionen für die automatische Skalierung:

    • Azure Databricks
    • AKS
    • Spring Apps
    • Batch
    • Azure-Funktionen
    • Logic Apps
  • Weitere Informationen zur automatischen Skalierung in Azure finden Sie im Leitfaden zur automatischen Skalierung.

Sicherheit

  • In dieser Referenzarchitektur wird ExpressRoute zur Herstellung einer privaten und effizienten Verbindung mit Azure aus der lokalen Umgebung verwendet. Sie können aber auch ein Site-to-Site-VPN erstellen.
  • Sie können Azure-Ressourcen mit Microsoft Entra ID authentifizieren. Sie können Berechtigungen über die rollenbasierte Zugriffssteuerung (RBAC) verwalten.
  • Datenbankdienste in Azure unterstützen verschiedene Sicherheitsoptionen, z. B. die Verschlüsselung ruhender Daten.
  • Weitere Informationen zum Entwerfen sicherer Lösungen finden Sie in der Dokumentation zur Azure-Sicherheit.

Resilienz

  • Sie können Azure Monitor und Application Insights zusätzlich zu Log Analytics verwenden, um die Integrität einer Azure-Ressource zu überwachen. Richten Sie Warnungen ein, um Ihre Ressourcenintegrität proaktiv zu verwalten.
  • Weitere Informationen zur Resilienz in Azure finden Sie unter Entwerfen zuverlässiger Azure-Anwendungen.

Kostenoptimierung

Sehen Sie sich den Azure-Preisrechner an, um die Kosten für Azure-Ressourcen zu schätzen.

Ein Beispiel für eine Kostenschätzung für Dienste finden Sie unter den Informationen zur Azure-Mainframebatchanwendung.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte