Migrationsstrategien für Mainframeanwendungen
Die meisten Teams verfolgen bei der Migration von Anwendungen aus Mainframeumgebungen zu Azure einen pragmatischen Ansatz: Nach Möglichkeit werden die Anwendungen weiterverwendet. Anschließend wird eine Bereitstellung in Phasen gestartet, bei der Anwendungen neu geschrieben oder ersetzt werden.
Die Anwendungsmigration umfasst üblicherweise eine oder mehrere der folgenden Strategien:
Erneut hosten: Verschieben Sie vorhandene Codes, Programme und Anwendungen aus dem Mainframe. Kompilieren Sie anschließend den Code neu, sodass er in einem Mainframe-Emulator ausgeführt werden kann, der in einer Cloudinstanz gehostet wird. Bei diesem Ansatz werden normalerweise als Erstes die Anwendungen in einen cloudbasierten Emulator verschoben, und dann wird die Datenbank zu einer cloudbasierten Datenbank migriert. Neben den Daten- und Dateikonvertierungen ist bei dieser Strategie etwas Engineering und Refactoring erforderlich.
Alternativ dazu können Sie die Zuweisung eines neuen Hosts über einen herkömmlichen Hostinganbieter durchführen. Einer der Hauptvorteile der Cloud besteht im Outsourcing der Infrastrukturverwaltung. Suchen Sie einen Rechenzentrumsanbieter, der Ihre Mainframeworkloads für Sie hostet. Durch dieses Modell können Sie Zeit gewinnen, sind nicht so abhängig von einem Anbieter und sparen zwischenzeitlich Kosten ein.
Außer Betrieb nehmen: Nehmen Sie Anwendungen, die nicht mehr benötigt werden, vor der Migration außer Betrieb.
Neu erstellen: Einige Organisationen entscheiden sich dazu, Programme mithilfe moderner Techniken vollständig umzuschreiben. Angesichts der zusätzlichen Kosten und der Komplexität dieses Ansatzes ist er nicht so verbreitet wie ein Lift & Shift-Ansatz. Nach dieser Art der Migration ist es häufig sinnvoll, Module und Code mithilfe von Codetransformations-Engines zu ersetzen.
Ersetzen: Bei diesem Ansatz wird die Mainframefunktionalität durch entsprechende Features in der Cloud ersetzt. Software as a Service (SaaS) ist eine Option. Bei SaaS wird eine speziell für Unternehmensbelange erstellte Lösung verwendet, darunter Finanzen, Personalwesen, Fertigung oder Unternehmensressourcenplanung. Darüber hinaus stehen jetzt viele branchenspezifische Anwendungen zur Verfügung, um Probleme zu lösen, die zuvor durch benutzerdefinierte Mainframelösungen gelöst wurden.
Planen Sie als Erstes die Workloads, die Sie zuerst migrieren möchten, und ermitteln Sie dann die Anforderungen für das Verschieben der zugehörigen Anwendungen, älteren Codebasen und Datenbanken.
Mainframe-Emulation in Azure
Azure-Dienste können herkömmliche Mainframe-Umgebungen emulieren. Sie können dann vorhandenen Mainframecode und zugehörige Anwendungen weiterverwenden Sie können allgemeine Serverkomponenten wie OLTP-Systeme (Online Transaction Processing, Onlinetransaktionsverarbeitung), Batch- und Datenerfassungssysteme emulieren.
OLTP-Systeme
Auf vielen Mainframes werden OLTP-Systeme verwendet, die Tausende oder Millionen von Updates für eine große Anzahl von Benutzern verarbeiten. Diese Anwendungen verwenden häufig die Transaktionsverarbeitung sowie Software zur Verarbeitung von Bildschirmformularen, beispielsweise CICS (Customer Information Control System), IMS (Information Management System) und TIP (Terminal Interface Processor).
Beim Verlagern von OLTP-Anwendungen in Azure können Emulatoren für Monitore der Mainframetransaktionsverarbeitung (TP) als Infrastructure-as-a-Service (IaaS) mit virtuellen Computern (VMs) in Azure ausgeführt werden. Die Webserver können auch Bildschirmverarbeitungs- und Formularfunktionalität implementieren. Kombinieren Sie den Datenzugriff und für Transaktionen diesen Ansatz mit Datenbank-APIs wie ADO (ActiveX Data Objects), ODBC (Open Database Connectivity) und JDBC (Java Database Connectivity).
Zeitlich beschränkte Batchupdates
Viele Mainframesysteme führen monatliche oder jährliche Updates von Millionen von Kontodatensätzen durch, wie sie z.B. in Banken, Versicherungen und Behörden verwendet werden. Mainframes verarbeiten diese Arten von Workloads durch die Bereitstellung von Datenverarbeitungssystemen mit hohem Durchsatz. Mainframebatchaufträge sind in der Regel serieller Natur, und ihre Leistung hängt von den Eingabe-/Ausgabevorgängen pro Sekunde (IOPS) ab, die vom Mainframebackbone ermöglicht werden.
Die Leistung cloudbasierter Umgebungen beruht auf parallelen Computeressourcen und Hochgeschwindigkeitsnetzwerken. Wenn Sie die Batchleistung optimieren möchten, bietet Azure verschiedene Compute-, Speicher- und Netzwerkoptionen.
Datenerfassungssysteme
Mainframes erfassen große Datenbatches aus Einzelhandel, Finanzdienstleistungen, Fertigung und anderen Verarbeitungslösungen. Mit Azure können Sie einfache Befehlszeilen-Hilfsprogramme wie z. B. AzCopy zum Kopieren von Daten in den und aus dem Speicherort verwenden. Sie können auch den Azure Data Factory-Dienst verwenden, um Daten aus unterschiedlichen Datenspeichern zu erfassen und datengesteuerte Workflows zu erstellen und zu planen.
Neben Emulationsumgebungen stellt Azure auch PaaS-Lösungen (Platform-as-a-Service) und Analysedienste bereit, mit denen vorhandene Mainframe-Umgebungen erweitert werden können.
Migrieren von Workloads zu Azure
Die Migration per „Lift & Shift“ ist die codelose Option zur schnellen Migration vorhandener Anwendungen zu Azure. Jede Anwendung wird im vorliegenden Zustand migriert, wodurch Sie die Vorteile der Cloud, jedoch ohne die Risiken und Kosten von Codeänderungen erhalten. Durch die Verwendung eines Emulators für Monitore der Mainframetransaktionsverarbeitung (TP) in Azure wird dieser Ansatz unterstützt.
TP-Monitore sind von verschiedenen Herstellern erhältlich und werden auf virtuellen Computern ausgeführt – eine IaaS-Option (Infrastructure-as-a-Service) in Azure. Die folgenden Vorher-/Nachher-Diagramme zeigen die Migration einer von IBM DB2 unterstützten Onlineanwendung, einem Managementsystem für relationale Datenbanken (DBMS), auf einem IBM z/OS-Mainframe. DB2 für z/OS verwendet VSAM-Dateien (Virtual Storage Access Method) zum Speichern der Daten sowie die indizierte sequenzielle Zugriffsmethode (ISAM) für Flatfiles. Diese Architektur verwendet zudem CICS für die Transaktionsüberwachung.
In Azure werden Emulationsumgebungen verwendet, um den TP-Manager und die Batchaufträge auszuführen, die JCL nutzen. In der Datenschicht wird DB2 durch Azure SQL-Datenbank ersetzt, obwohl auch Microsoft SQL Server, DB2 LUW oder Oracle Database verwendet werden können. Ein Emulator unterstützt IMS, VSAM und SEQ. Die Systemverwaltungstools des Mainframes werden durch Azure-Dienste und Software von anderen Herstellern ersetzt, die auf virtuellen Computern ausgeführt werden.
Die Funktionalität für Bildschirmverarbeitung und Formulareinträge wird häufig über Webserver implementiert, die mit Datenbank-APIs wie ADO, ODBC und JDBC für den Datenzugriff und Transaktionen kombiniert werden können. Die genaue Zusammenstellung zu verwendender Azure-IaaS-Komponenten hängt vom bevorzugten Betriebssystem ab. Beispiel:
Windows-basierte VMs: Internet Information Server (IIS) zusammen mit ASP.NET für Bildschirmverarbeitung und Geschäftslogik. Verwenden Sie ADO.NET für Datenzugriff und Transaktionen.
Linux-basierte VMs: Java-basierte Anwendungsserver, z. B. Apache Tomcat für die Bildschirmverarbeitung und Java-basierte Geschäftsfunktionen. Verwenden Sie JDBC für Datenzugriff und Transaktionen.
Migrieren von Batchworkloads zu Azure
Batchvorgänge in Azure unterscheiden sich von der typischen Batchumgebung auf Mainframes. Mainframebatchaufträge sind in der Regel serieller Natur, und ihre Leistung hängt von den IOPS ab, die vom Mainframebackbone ermöglicht werden. Die Leistung cloudbasierter Umgebungen beruht auf parallelen Computeressourcen und Hochgeschwindigkeitsnetzwerken.
Um die Batchleistung mithilfe von Azure zu optimieren, ziehen Sie die Compute-, Speicher-, Netzwerk- und Überwachungsoptionen wie folgt in Betracht.
Compute
Verwendung:
VMs mit der höchsten Taktfrequenz. Mainframeanwendungen sind häufig Singlethreadanwendungen, und Mainframe-CPUs verfügen über eine hohe Taktfrequenz.
Virtuelle Computer mit großer Arbeitsspeicherkapazität, um die Zwischenspeicherung von Daten und Anwendungsarbeitsbereichen zu ermöglichen.
VMs mit vCPUs höherer Dichte, um die Vorteile der Multithreadverarbeitung zu nutzen, wenn die Anwendung mehrere Threads unterstützt.
Parallele Verarbeitung, da Azure für die Parallelverarbeitung einfach horizontal hochskaliert werden und mehr Computeleistung für eine Batchausführung bereitstellen kann.
Storage
Verwendung:
Azure SSD Premium oder Azure SSD Ultra für maximal verfügbare IOPS
Striping mit mehreren Datenträgern für mehr IOPS pro Speichergröße.
Partitionierung zur Verteilung der Speicher-E/A auf mehrere Azure-Speichergeräte.
Netzwerk
- Verwenden Sie den beschleunigten Azure-Netzwerkbetrieb, um Wartezeiten zu verringern.
Überwachung
- Verwenden Sie Überwachungstools, Azure Monitor, Application Insights und Azure-Protokolle. Mit diesen Tools können Sie ausgelastete Batchausführungen überwachen und Engpässe reduzieren.
Migrieren von Entwicklungsumgebungen
Die verteilten Architekturen der Cloud basieren auf einem anderen Satz aus Entwicklungstools, die den Vorteil moderner Methoden und Programmiersprachen bieten. Um diesen Übergang zu erleichtern, können Sie eine Entwicklungsumgebung mit anderen Tools verwenden, die zum Emulieren von IBM z/OS-Umgebungen entwickelt wurden. Die folgende Liste enthält Optionen von Microsoft und anderen Anbietern:
Komponente | Azure-Optionen |
---|---|
z/OS | Windows, Linux oder Unix |
CICS | Von Micro Focus, Oracle, GT Software (Fujitsu), TmaxSoft, Raincode und NTT DATA angebotene oder mit Kubernetes neu geschriebene Azure-Dienste |
IMS | Von Micro Focus und Oracle angebotene Azure-Dienste |
Assembler | Azure-Dienste von Raincode und TmaxSoft bzw. COBOL, C oder Java oder Zuordnung zu Betriebssystemfunktionen |
JCL | JCL, PowerShell oder andere Skripterstellungstools |
COBOL | COBOL, C oder Java |
Natural | Natural, COBOL, C oder Java |
Fortran und PL/I | Fortran, PL/I, COBOL, C oder Java |
REXX und PL/I | REXX, PowerShell oder andere Skripterstellungstools |
Migrieren von Datenbanken und Daten
Die Anwendungsmigration umfasst in der Regel das Zuweisen eines neuen Hosts für die Datenschicht. Sie können Ihre SQL Server-, Open Source- und anderen relationalen Datenbanken zu vollständig verwalteten Lösungen in Azure migrieren. Sie können Azure SQL Managed Instance, Azure Database for PostgreSQL und Azure Database for MySQL mit Azure Database Migration Service verwenden.
Beispielsweise können Sie die Migration durchführen, wenn in der Mainframedatenschicht Folgendes verwendet wird:
IBM DB2 oder IMS-Datenbank: Verwenden Sie Azure SQL-Datenbank, SQL Server, DB2 LUW oder Oracle Database in Azure.
VSAM- und andere Flatfiles: Verwenden Sie ISAM-Flatfiles (indizierte sequenzielle Zugriffsmethode) für Azure SQL-Datenbank, SQL Server, DB2 LUW oder Oracle.
GDGs (Generation Date Groups): Migrieren Sie zu Dateien in Azure, die eine Namenskonvention und Dateinamenerweiterungen sowie eine ähnliche Funktionalität wie GDGs bereitstellen.
Die IBM-Datenschicht umfasst mehrere wichtige Komponenten, die ebenfalls migriert werden müssen. Wenn Sie beispielsweise eine Datenbank migrieren, migrieren Sie auch eine Sammlung von Daten in Pools. Diese enthalten jeweils dbextents, bei denen es sich um z/OS-VSAM-Datasets handelt. Ihre Migration muss das Verzeichnis einschließen, das die Datenspeicherorte in den Speicherpools identifiziert. Darüber hinaus muss Ihr Migrationsplan auch das Datenbankprotokoll berücksichtigen, welches einen Datensatz mit den für die Datenbank ausgeführten Vorgängen enthält. Eine Datenbank kann ein, zwei (dual oder alternativ) oder vier Protokolle (dual und alternativ) aufweisen.
Die Datenbankmigration umfasst außerdem folgende Komponenten:
- Datenbank-Manager: Bietet Zugriff auf Daten in der Datenbank. Der Datenbank-Manager wird in einer eigenen Partition in einer z/OS-Umgebung ausgeführt.
- Anwendungsanforderer: Nimmt Anforderungen von Anwendungen an, bevor sie an einen Anwendungsserver weitergeleitet werden.
- Onlineressourcenadapter: Enthält Komponenten des Anwendungsanforderers zur Verwendung in CICS-Transaktionen.
- Batchressourcenadapter: Implementiert Komponenten des Anwendungsanforderers für z/OS-Batchanwendungen.
- Interactive SQL (ISQL): Wird als CICS-Anwendung und Schnittstelle ausgeführt und ermöglicht Benutzern die Eingabe von SQL-Anweisungen oder Operatorbefehlen.
- CICS-Anwendung: Wird unter CICS-Steuerung ausgeführt und verwendet verfügbare Ressourcen und Datenquellen in CICS.
- Batchanwendung: Führt Prozesslogik ohne interaktive Kommunikation mit Benutzern aus, um beispielsweise Massenaktualisierungen von Daten durchzuführen oder Berichte aus einer Datenbank zu generieren.
Optimieren von Skalierung und Durchsatz für Azure
Allgemein formuliert werden Mainframes hochskaliert, während die Cloud aufskaliert wird. Um die Skalierung und den Durchsatz von Mainframeanwendungen unter Azure zu optimieren, müssen Sie wissen, wie Mainframes Anwendungen trennen und isolieren. Ein z/OS-Mainframe verwendet ein Feature namens LPARs (logische Partitionen), um die Ressourcen für eine bestimmte Anwendung auf einer einzelnen Instanz zu isolieren und zu verwalten.
Beispielsweise kann ein Mainframe eine LPAR für eine CICS-Region mit zugeordneten COBOL-Programmen und eine separate LPAR für eine DB2 verwenden. Weitere LPARs werden häufig in Entwicklungs-, Test- und Stagingumgebungen eingesetzt.
In Azure ist es eher üblich, zu diesen Zwecken separate virtuelle Computer zu verwenden. Azure-Architekturen stellen in der Regel VMs für die Logikschicht, einen separaten Satz von VMs für die Datenschicht, einen weiteren Satz für die Entwicklung usw. bereit. Sie können jede Verarbeitungsebene über den am besten geeigneten VM-Typ und über die Features für die jeweilige Umgebung optimieren.
Darüber hinaus kann jede Ebene auch entsprechende Dienste für die Notfallwiederherstellung bereitstellen. Zum Beispiel ist für Produktions- und Datenbank-VMs möglicherweise eine Wiederherstellung auf heißer oder warmer Ebene erforderlich, während Entwicklungs- und Test-VMs eine Wiederherstellung auf kalter Ebene unterstützen.
Die folgende Abbildung zeigt eine mögliche Azure-Bereitstellung über einen primären und einen sekundären Standort. Am primären Standort werden die Produktions-, Staging- und Test-VMs mit hoher Verfügbarkeit bereitgestellt. Der sekundäre Standort wird für die Sicherung und Notfallwiederherstellung verwendet.
Durchführen einer gestaffelten Migration zu Azure
Das Verschieben von Lösungen aus einem Mainframe nach Azure kann eine mehrstufige Migration umfassen. Sie verschieben zunächst einige Anwendungen, während andere vorübergehend oder dauerhaft auf dem Mainframe verbleiben. Für diesen Ansatz sind in der Regel Systeme erforderlich, die eine Zusammenarbeit von Anwendungen und Datenbanken zwischen Mainframe und Azure ermöglichen.
In einem häufigen Szenario wird eine Anwendung nach Azure verschoben, während die von der Anwendung verwendeten Daten auf dem Mainframe bleiben. Eine spezielle Software ermöglicht den Anwendungen in Azure den Zugriff auf Daten auf dem Mainframe. Glücklicherweise stellen zahlreiche Lösungen die Integration zwischen Azure und vorhandenen Mainframe-Umgebungen, die Unterstützung für Hybridszenarien und die Migration über einen längeren Zeitraum bereit. Microsoft-Partner, unabhängige Softwarehersteller und Systemintegratoren können Sie bei diesem Prozess unterstützen.
Eine Option ist Microsoft Host Integration Server. Diese Lösung stellt die verteilte Architektur relationaler Datenbanken (Distributed Relational Database Architecture, DRDA) bereit, die für Anwendungen in Azure erforderlich ist. Damit können die Anwendungen auf Daten in DB2 zugreifen, die auf dem Mainframe verbleiben. Zu weiteren Optionen für die Integration von Mainframes in Azure zählen Lösungen von IBM, Attunity, Codit und anderen Anbietern sowie Open Source-Optionen.
Partnerlösungen
Wenn Sie eine Mainframemigration in Erwägung ziehen, kann das Partner-Ökosystem Ihnen behilflich sein.
Azure bietet eine bewährte, hoch verfügbare und skalierbare Infrastruktur für Systeme, die derzeit auf Mainframes ausgeführt werden. Einige Workloads können relativ einfach migriert werden. Sie können andere Workloads, die von Legacysystemsoftware wie CICS und IMS abhängig sind, erneut hosten. Verwenden Sie Partnerlösungen, und migrieren Sie sie im Laufe der Zeit zu Azure. Unabhängig von Ihrer Wahl stehen Microsoft und unsere Partner Ihnen zur Seite, um Sie bei der Optimierung für Azure und bei der Beibehaltung der Funktionalität von Mainframesystemsoftware zu unterstützen.
Weitere Informationen
Weitere Informationen finden Sie in den folgenden Ressourcen: