Die Lösung für automatisiertes COBOL-Refactoring von Advanced gestaltet COBOL-Anwendungen sowie Anwendungen, die in CA-Gen, CA-Telon, Natural, ADSO und anderen Legacy-Programmiersprachen geschrieben sind, um, um cloudfähige Anwendungen und Datenbanken bereitzustellen, die funktional ihren Legacy-Gegenstücken entsprechen. Dies verringert die Kosten und ermöglicht eine tiefere Integration sowie Anpassungen zur Erfüllung geschäftlicher Anforderungen. Darüber hinaus eröffnen sich dadurch ganz neue Qualitäts- und Skalierungsmöglichkeiten – von automatisierten Tests bis hin zur Qualitätssicherung – sowie die Möglichkeit, von containerisierten Bereitstellungen und von der Orchestrierung mit Docker und Kubernetes zu profitieren.
Mainframearchitektur
Hier sehen Sie ein Beispielsystem, in dem automatisiertes Refactoring verwendet werden kann:
Workflow
A. Benutzer übermitteln Eingaben über TCP/IP unter Verwendung von Protokollen wie TN3270, HTTP und HTTPS.
B. Die Eingabe trifft unter Verwendung standardmäßiger Mainframeprotokolle ein.
C. Die Eingabe wird von Batch- und Onlineanwendungen verarbeitet.
D: COBOL, PL/I, Assembler und kompatible Programmiersprachen werden in einer aktivierten Umgebung ausgeführt.
E. Dateien und Datenbanken stellen Datenspeicher bereit. Die Datenbanktypen umfassen hierarchische Datenbanken, Netzwerkdatenbanken und relationale Datenbanken.
F. Dienste führen Aufgaben für die Anwendungen aus. Zu den üblicherweise aktivierten Diensten zählen Programmausführung, E/A-Vorgänge, Fehlererkennung und Schutz.
G. Middleware und Hilfsdienste verwalten Aspekte wie Bandspeicherung, Warteschlangen, Ausgaben und Webunterstützung.
H. Betriebssysteme stellen die Schnittstelle zwischen der Engine und der ausgeführten Software bereit.
I. Partitionen führen separate Workloads aus oder trennen Arbeitstypen innerhalb der Umgebung.
Azure-Architektur
Dies ist die Architektur des obigen Beispielsystems nach dem Refactoring für Azure. Die Buchstaben in den Diagrammen zeigen, wo die umgestaltete Lösung die entsprechenden Mainframefunktionen übernimmt.
Laden Sie eine Visio-Datei dieser Architektur herunter.
Workflow
Eingaben stammen in der Regel entweder von Remoteclients (über Azure ExpressRoute) oder von anderen Azure-Anwendungen. In beiden Fällen werden in erster Linie TCP/IP-Verbindungen verwendet, um eine Verbindung mit dem System herzustellen. Der Benutzerzugriff auf Webanwendungen erfolgt über den TLS-Port 443. Sie können die Benutzeroberfläche der Webanwendungen unverändert lassen, um den Umschulungsaufwand für Endbenutzer zu minimieren. Alternativ können Sie die Benutzeroberfläche unter Verwendung moderner Benutzeroberflächenframeworks aktualisieren. Azure Bastion bietet Administratorzugriff auf die virtuellen Computer (Virtual Machines, VMs) und minimiert die Anzahl geöffneter Ports, um die Sicherheit zu maximieren.
In Azure erfolgt der Zugriff auf die Anwendungscomputecluster über einen Azure-Lastenausgleich. Dieser ermöglicht das Aufskalieren von Computeressourcen für die Verarbeitung der Eingaben. Je nach Eingabe können Sie entweder einen Lastenausgleich auf Anwendungsebene oder einen Lastenausgleich auf Netzwerkprotokollebene verwenden.
Advanced unterstützt die Bereitstellung in Containern, auf virtuellen Computern oder in VM-Skalierungsgruppen. Container und VM-Skalierungsgruppen können im Gegensatz zu virtuellen Computern schnell auf- und abskaliert werden. Die Verlagerung der Skalierungseinheit auf Container trägt zur Optimierung der Infrastrukturnutzung bei.
Anwendungsserver empfangen die Eingabe in den Computeclustern und geben den Anwendungszustand und die Daten mithilfe von Azure Cache for Redis oder Remote Direct Memory Access (RDMA) weiter.
Datendienste in den Anwendungsclustern ermöglichen mehrere Verbindungen mit persistenten Datenquellen. Zu den möglichen Datenquellen zählen:
- Azure SQL-Datenbank.
- Azure Cosmos DB.
- Datenbanken auf virtuellen Computern (beispielsweise Oracle oder Db2).
- Big Data-Repositorys wie Azure Databricks und Azure Data Lake.
- Streamingdatendienste wie Kafka und Azure Stream Analytics.
Auf den Anwendungsservern werden verschiedene Anwendungsprogramme gehostet – je nach Funktionen der Programmiersprache beispielsweise Java-Klassen oder COBOL-Programme.
Datendienste verwenden eine Kombination aus folgenden Komponenten:
Hochleistungsspeicher: Azure SSD Premium und Azure Disk Storage Ultra.
Dateispeicher: Azure NetApp Files und Azure Files.
Standardspeicher: Azure Blob Storage, Archiv und Sicherung. Die Sicherung kann Folgendes sein:
- Lokal redundanter Speicher (LRS).
- Zonenredundanter Speicher (ZRS).
- Georedundanter Speicher (GRS).
- Geozonenredundanter Speicher (GZRS).
Weitere Informationen zur Redundanz finden Sie unter Azure Storage-Redundanz.
Azure-PaaS-Datendienste (Platform as a Service) bieten skalierbaren und hochverfügbaren Datenspeicher, der von mehreren Computeressourcen in einem Cluster gemeinsam genutzt werden kann. Auch Georedundanz ist möglich.
Azure Data Factory kann Daten erfassen und mit mehreren Datenquellen synchronisieren – sowohl in Azure als auch aus externen Quellen. Azure Blob Storage ist eine häufig verwendete Zielzone für externe Datenquellen.
Azure Site Recovery ermöglicht die Notfallwiederherstellung der VM- und Containerclusterkomponenten.
Anwendungen stellen eine Verbindung mit privaten Endpunkten der verschiedenen PaaS-Dienste her.
Komponenten
In diesem Beispiel werden die folgenden Azure-Komponenten verwendet. Einige dieser Komponenten und Workflows sind je nach Szenario austauschbar oder optional.
- Azure ExpressRoute dehnt Ihr lokales Netzwerk über eine private, dedizierte Glasfaserverbindung von einem Konnektivitätsanbieter auf Azure aus. ExpressRoute stellt Verbindungen mit Microsoft-Clouddiensten wie Azure und Microsoft 365 her.
- Azure Bastion ermöglicht nahtlose RDP- und SSH-Konnektivität (Remotedesktopprotokoll und Secure Shell) mit virtuellen Computern im virtuellen Netzwerk über TLS (Transport Layer Security) im Azure-Portal. Azure Bastion maximiert die Zugriffssicherheit für Administratoren, indem die Anzahl der offenen Ports minimiert wird.
- Azure Load Balancer verteilt eingehenden Datenverkehr auf die Computeressourcencluster. Sie können Regeln und andere Kriterien definieren, um den Datenverkehr zu verteilen.
- Azure Kubernetes Service (AKS) ist ein vollständig verwalteter Kubernetes-Dienst für die Bereitstellung und Verwaltung von containerisierten Anwendungen. AKS umfasst die serverlose Plattform Kubernetes, integrierte CI/CD-Funktionen (Continuous Integration und Continuous Delivery) sowie Sicherheit und Governance auf Unternehmensniveau.
- Azure Virtual Machines bietet viele Größen und Typen skalierbarer On-Demand-Computeressourcen. Mit Azure-VMs erhalten Sie die Flexibilität der Virtualisierung, ohne physische Hardware kaufen und warten zu müssen.
- Azure Virtual Network ist der Grundbaustein für private Azure-Netzwerke. Virtuelle Computer in virtuellen Netzwerken können sicher miteinander sowie mit dem Internet und lokalen Netzwerken kommunizieren. Ein virtuelles Netzwerk ähnelt einem herkömmlichen lokalen Netzwerk, bietet aber die Vorteile der Azure-Infrastruktur wie Skalierbarkeit, Hochverfügbarkeit und Isolation.
- Azure Private Link stellt private Konnektivität zwischen einem virtuellen Netzwerk und Azure-Diensten bereit. Private Link beseitigt die öffentliche Internetverfügbarkeit, um die Netzwerkarchitektur zu vereinfachen und die Verbindungen zwischen Azure-Endpunkten zu schützen.
- Azure Cache for Redis fügt der Anwendungsarchitektur eine Ebene für die schnelle Zwischenspeicherung hinzu, um große Datenmengen mit hoher Geschwindigkeit zu verarbeiten. Azure Cache Redis ermöglicht eine einfache und kostengünstige Leistungsskalierung mit den Vorteilen eines vollständig verwalteten Diensts.
- Azure Storage ist skalierbarer, sicherer Cloudspeicher für alle Ihre Daten, Anwendungen und Workloads.
- Azure Disk Storage ist ein hochleistungsfähiger, permanenter Blockspeicher für unternehmenskritische Anwendungen. Verwaltete Azure-Datenträger sind Speichervolumes auf Blockebene, die von Azure auf Azure-VMs verwaltet werden. Die verfügbaren Datenträgerspeichertypen sind Disk Storage Ultra, SSD Premium, SSD Standard und HDD Standard. Für diese Architektur wird entweder SSD Premium oder Disk Storage Ultra verwendet.
- Azure Files bietet vollständig verwaltete Dateifreigaben in der Cloud, auf die über Server Message Block (SMB), ein Protokoll nach Branchenstandard, zugegriffen werden kann. Cloudbasierte und lokale Windows-, Linux- und macOS-Bereitstellungen können Dateifreigaben gleichzeitig einbinden.
- Azure NetApp Files bietet von NetApp unterstützte Azure-Dateifreigaben für Unternehmen. Mit Azure NetApp Files können Unternehmen komplexe, dateibasierte Anwendungen mühelos ohne Codeänderungen migrieren und ausführen.
- Azure Blob Storage ist ein skalierbarer und sicherer Objektspeicher für Archive, Data Lakes, Hochleistungscomputing, maschinelles Lernen und cloudnative Workloads.
- Azure-Datenbanken bieten eine Auswahl vollständig verwalteter relationaler und NoSQL-Datenbanken, die den Anforderungen moderner Anwendungen entsprechen. Die automatisierte Infrastrukturverwaltung bietet Skalierbarkeit, Verfügbarkeit und Sicherheit.
- Azure SQL-Datenbank ist eine vollständig verwaltete PaaS-Datenbank-Engine. Azure SQL-Datenbank wird immer in der aktuellen stabilen Version von SQL Server und unter einem gepatchten Betriebssystem mit hoher Verfügbarkeit ausgeführt. Zu den integrierten PaaS-Datenbankverwaltungsfunktionen zählen Upgrades, Patches, Sicherungen und Überwachung. So können Sie sich auf die Verwaltung und Optimierung domänenspezifischer, unternehmenskritischer Datenbanken konzentrieren.
- Azure Database for PostgreSQL ist ein vollständig verwalteter Datenbankdienst, der auf der relationalen Open-Source-PostgreSQL-Datenbank-Engine basiert. Bei der Option für die Hyperscale (Citus)-Bereitstellung werden Abfragen mithilfe von Sharding über mehrere Computer hinweg skaliert. Sie wird für Anwendungen genutzt, die eine umfangreichere Skalierbarkeit und höhere Leistung erfordern.
- Azure Cosmos DB ist eine vollständig verwaltete schnelle NoSQL-Datenbank mit offenen APIs für jeden Maßstab.
- Azure Site Recovery spiegelt virtuelle Azure-Computer in einer sekundären Azure-Region, um beim Ausfall eines Azure-Rechenzentrums ein schnelles Failover und eine schnelle Datenwiederherstellung zu ermöglichen.
- Azure Data Factory ist ein ETL-Dienst (Extrahieren, Transformieren und Laden) für die serverlose Datenintegration und Datentransformation mit horizontaler Skalierung. Der Dienst bietet eine Benutzeroberfläche ohne Code für die intuitive Erstellung sowie Überwachung und Verwaltung über eine zentrale Konsole.
Szenariodetails
Es gibt viele Gründe, nach Alternativen zu den üblichen COBOL-basierten Mainframeanwendungen zu suchen:
- COBOL- und CA-Gen/Natural/Telon/ASDO-Entwickler gehen in Rente, und es wurde niemand geschult, um sie zu ersetzen, sodass immer weniger entsprechend qualifizierte Entwickler vorhanden sind. Mit zunehmendem Mangel an qualifizierten Entwicklern steigen auch die Kosten und Risiken der Nutzung von COBOL und anderen Legacy-Programmiersprachen.
- Die Anwendungen wurden nicht für eine moderne IT-Umgebung entwickelt, was zu schwierigen Integrationen und eingeschränkter Flexibilität führt.
- IBM-Mainframehardware und -software sind teuer, und die Lizenzierungs- und Wartungsgebühren für ergänzende Mainframeanwendungen und -datenbanken steigen.
Die Lösung für automatisiertes COBOL-Refactoring von Advanced gestaltet COBOL-Anwendungen sowie Anwendungen, die in anderen Legacy-Programmiersprachen geschrieben sind, um, um cloudfähige Anwendungen und Datenbanken bereitzustellen, die funktional ihren Legacy-Gegenstücken entsprechen. Dies verringert die Kosten und ermöglicht eine tiefere Integration sowie Anpassungen zur Erfüllung geschäftlicher Anforderungen. Darüber hinaus eröffnen sich dadurch ganz neue Qualitäts- und Skalierungsmöglichkeiten – von automatisierten Tests bis hin zur Qualitätssicherung – sowie die Möglichkeit, von containerisierten Bereitstellungen und von der Orchestrierung mit Docker und Kubernetes zu profitieren.
Für die umgestalteten Anwendungen gilt Folgendes:
- Sie entsprechen funktionell den Originalanwendungen.
- Sie sind einfach zu verwalten: Sie erreichen Bestnoten von SonarQube und folgen objektorientierten Konzepten und Paradigmen.
- Ihre Leistung entspricht mindestens der Leistung der Originalanwendungen.
- Sie sind cloudfähig und werden mithilfe einer standardbasierten DevOps-Toolkette und bewährter Methoden bereitgestellt.
Der Refactoringprozess umfasst die Flownormalisierung, die Umstrukturierung des Codes, die Datenebenenextraktion, die Anpassung des Datenmodells und die Paketierung für die Nachbildung. Der Prozess identifiziert geklonten Code und erstellt gemeinsam genutzte Ersatzobjekte, um die Wartung und Verwaltung zu vereinfachen. Mittels Analyse von komplexen Daten und Steuerungsabhängigkeiten wird toter Code ermittelt und entfernt.
Nach der Umgestaltung der COBOL-Anwendungen und der zugehörigen Datenbanken durch die Advanced-Lösung können Java- und C#-Entwickler standardmäßige DevOps-Tools und CI/CD-Konzepte verwenden, um die Anwendungsfunktionen zu erweitern. Der Refactoringprozess behält die Geschäftslogik bei und optimiert die Leistung. Weitere Vorteile sind Elastizität, differenzierte Dienstdefinitionen und die einfache Integration in cloudnative Dienste.
Automatisiertes COBOL-Refactoring ist für die meisten COBOL-Dialekte und -Plattformen verfügbar – einschließlich z/OS, OpenVMS und VME.
Mögliche Anwendungsfälle
Das Refactoring von Advanced kann in verschiedensten Szenarien eingesetzt werden. Hierzu zählen beispielsweise:
- Unternehmen mit folgenden Zielen:
- Modernisieren der Infrastruktur und Vermeiden der hohen Kosten, Einschränkungen und der mangelnden Flexibilität, die mit Mainframes einhergehen.
- Umstellen auf cloudnative Lösungen und DevOps, um das Risiko zu umgehen, das mit Qualifikationsengpässen bei Legacysystemen und -anwendungen verbunden ist.
- Senken der Betriebs- und Investitionskosten.
- Organisationen, die Mainframeworkloads ohne kostspielige und fehleranfällige manuelle Umschreibungen zur Cloud migrieren möchten.
- Organisationen, die unternehmenskritische Anwendungen unter Beibehaltung der Kontinuität mit anderen lokalen Anwendungen migrieren möchten.
- Teams, die sich die von Azure gebotene horizontale und vertikale Skalierbarkeit wünschen.
- Unternehmen, die Lösungen mit Notfallwiederherstellungsoptionen bevorzugen.
Überlegungen
Zum Erzielen eines hoch verfügbaren und sicheren Systems integrieren Sie die folgenden Säulen des Microsoft Azure Well-Architected Framework:
Verfügbarkeit
- Die Architektur verwendet Azure Site Recovery, um die virtuellen Azure-Computer in einer sekundären Azure-Region zu spiegeln und so ein schnelles Failover und die Notfallwiederherstellung bei Ausfall eines Azure-Rechenzentrums zu ermöglichen.
- Die Replikation der Autofailover-Gruppe von Azure verwaltet die Datenbankreplikation und das Failover auf die sekundäre Region.
Operations
Die Umgestaltung ermöglicht nicht nur eine schnellere Cloudeinführung, sondern fördert auch die Einführung von DevOps und agilen Arbeitsprinzipien. Sie verfügen über vollständige Flexibilität hinsichtlich der Optionen für die Entwicklung und Produktionsbereitstellung.
Sicherheit
Diese Lösung verwendet eine Azure-Netzwerksicherheitsgruppe, um den Datenverkehr zwischen Azure-Ressourcen zu verwalten. Weitere Informationen finden Sie unter Netzwerksicherheitsgruppen.
Private Link für Azure SQL-Datenbank bietet eine private, direkte Verbindung (isoliert vom Azure-Netzwerkbackbone) von den virtuellen Azure-Computern zu Azure SQL-Datenbank.
Azure Bastion maximiert die Zugriffssicherheit für Administratoren, indem die Anzahl der offenen Ports minimiert wird. Dieser Dienst ermöglicht sichere und nahtlose RDP- und SSH-Verbindungen mit virtuellen Netzwerk-VMs über TLS direkt im Azure-Portal.
Resilienz
Die Resilienz wird bei dieser Lösung durch Lastenausgleichsmodule sichergestellt. Wenn ein Präsentations- oder Transaktionsserver ausfällt, können andere Server hinter dem Lastenausgleich die Workloads gemäß den Regeln und Integritätstests ausführen. Verfügbarkeitsgruppen und georedundanter Speicher werden dringend empfohlen.
Kostenoptimierung
Mit Azure können Sie unnötige Kosten vermeiden – Azure identifiziert die korrekte Anzahl von Ressourcentypen, analysiert die Ausgaben im Laufe der Zeit und nimmt die Skalierung so vor, dass die Geschäftsanforderungen ohne Mehrkosten erfüllt werden.
- Durch die Ausführung auf VMs optimiert Azure die Kosten. Sie können virtuelle Computer deaktivieren, wenn sie nicht verwendet werden, und einen Zeitplan für bekannte Verwendungsmuster erstellen. Weitere Informationen zur Kostenoptimierung für VM-Instanzen finden Sie im Microsoft Azure Well-Architected Framework.
- Für die virtuellen Computer in dieser Architektur wird entweder SSD Premium oder Disk Storage Ultra verwendet. Weitere Informationen zu den Optionen und Preisen für Datenträger finden Sie unter Preise für verwaltete Datenträger.
- SQL-Datenbank optimiert die Kosten mit serverlosen Compute- und Hyperscale-Speicherressourcen, die automatisch skaliert werden. Weitere Informationen zu den Optionen und Preisen für SQL-Datenbank finden Sie unter Preise für Azure SQL-Datenbank.
- Verwenden Sie den Preisrechner, um die Kosten für Ihre Implementierung dieser Lösung zu schätzen.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautor:
- Bhaskar Bandam | Senior TPM
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.
Nächste Schritte
- Weitere Informationen erhalten Sie hier: legacy2azure@microsoft.com
- Modernisierung von Platform as a Service (ModPaaS)
- Automatisierte COBOL-Refactoringlösung von Advanced
- Fallstudie: Cloudbasiertes Modernisieren unter Zeitdruck