Einführung von Entwicklungscontainern für die Anwendungsentwicklung auf Mainframe-Subsystemen

Profilbild von Gary Evans vor grauem Hintergrund

Von Gary Evans

5 Minuten Lesezeit

Einführung

Nach fast 40 Jahren Berufserfahrung als Entwickler oder in der Zusammenarbeit mit Entwicklern bin ich der Überzeugung, dass Programmieren teils Kunst, teils Wissenschaft ist – eine Mischung aus Kreativität und technischem Können. Ich habe außerdem beobachtet, dass Kreativität am besten gefördert wird, wenn Entwickler Entscheidungsfreiheit haben.

Wir müssen außerdem anerkennen, dass Entwicklungsmanager Prozesse benötigen, die Kontrolle, Nachvollziehbarkeit und Konsistenz gewährleisten. Gleichzeitig benötigen die Unternehmen, für die sie arbeiten, Software, die schneller, aber ohne zusätzliche Risiken, bereitgestellt werden kann.

Wie lassen sich all diese Anforderungen in der Welt der Hybrid Cloud in Einklang bringen? Dies stellt eine besonders hohe Hürde für Entwickler und Organisationen dar, die Geschäftsanwendungen entwickeln und nutzen, die mit Mainframe-Subsystemen (MSS) wie CICS interagieren sollen.®, IMS™ und Db2® Die

Rocket Software bietet Ihnen mit branchenführenden Entwicklungsfunktionen und einer Vielzahl an Benutzeroberflächen die optimale Lösung. Die Lösungen sind auf z/OS®, lokal und in der Cloud unter Windows®, Linux® und AIX einsetzbar. Rocket® Enterprise Developer und Rocket® Enterprise Test Server bieten Entwicklern die Möglichkeit, ihre Benutzeroberfläche individuell anzupassen und moderne Entwicklungsmethoden zu integrieren. Dies umfasst sogar die Integration von DevOps in Ihre täglichen Aufgaben bei der Wartung und Modernisierung von MSS-Anwendungen.

Container sind für die Entwicklung gemacht

In den letzten Versionen haben wir außerdem die Unterstützung für die Containerisierung von Entwicklungsfunktionen eingeführt. Die Bereitstellung der Entwicklungsfunktionen in Containern erhält die einzigartigen Eigenschaften von Enterprise Developer. Die Bereitstellung individueller Entwicklungsumgebungen, die die Engpässe der traditionellen MSS-Anwendungsentwicklung beseitigen, bleibt erhalten. Dasselbe gilt für die Möglichkeit der zentralen Verwaltung und Steuerung in großen Entwicklungsorganisationen.

Die dynamische Natur von Containern hat sie in allen führenden CI/CD-Pipeline-Tools allgegenwärtig gemacht, um automatisierte Entwicklungsfunktionen bereitzustellen. Und jetzt können Sie sie auch an Workflow-Modelle von branchenbasierten Versionskontrollsystemen anpassen.

Um diese Auswahlmöglichkeiten noch weiter auszubauen und zu ergänzen, haben wir in der Version 10.0 von Enterprise Developer die Möglichkeit eingeführt, mit Entwicklungscontainern zu deployen.

 

Was sind Entwicklungscontainer?

Entwicklungscontainer (oder kurz Dev-Container) sind reproduzierbare Entwicklungsumgebungen. Aber worin unterscheiden sie sich von Standardcontainern?

Dev-Container bieten eine zusätzliche Kontrollebene für die Konfiguration der Entwicklungsumgebung. Sie erweitern den Standardcontainer um speziell auf die Entwicklung zugeschnittene Anpassungsoptionen. Dev-Container werden über eine JSON-basierte Konfigurationsdatei verwaltet, die eine vereinfachte Verwaltung der Containerfunktionen ermöglicht und zusammen mit der Anwendung versioniert werden kann. Weitere Funktionen erlauben es einzelnen Entwicklern, ihre Umgebung an ihre persönlichen Präferenzen anzupassen.

 

Warum sind Entwicklungscontainer wichtig?

Dev Containers unterstützen Entwickler, indem sie eine zuverlässige, isolierte und effiziente Umgebung zum Erstellen und Testen von Code bereitstellen.

Sie tragen zu schnelleren Entwicklungszyklen und einer besseren Zusammenarbeit innerhalb des Entwicklungsteams bei.

 

Isolation und Konsistenz

  • Dev-Container ermöglichen es Entwicklern, in einer konsistenten Umgebung zu arbeiten, unabhängig von der lokalen Konfiguration oder dem Hostsystem.
  • Durch die Bündelung von Tools, Bibliotheken, Laufzeitumgebungen und Abhängigkeiten stellen Entwicklungscontainer sicher, dass alle Teammitglieder mit der gleichen Konfiguration arbeiten.
  • Diese Trennung verhindert Konflikte zwischen Entwicklungs- und Betriebsteams, da sich jede Gruppe auf ihren jeweiligen Verantwortungsbereich konzentrieren kann.

 

Geschwindigkeit und Effizienz

  • Das Einrichten einer neuen Entwicklungsumgebung kann zeitaufwändig sein, aber nicht mit Dev-Containern, die diesen Prozess vereinfachen.
  • Entwickler können schnell eine vorkonfigurierte Umgebung direkt in ihrem Code-Editor einrichten.
  • Dies spart Zeit, reduziert den Einrichtungsaufwand und gewährleistet eine saubere Umgebung für jede Entwicklungssitzung.

 

Kontinuierliche Integration und Tests

  • Entwicklungscontainer unterstützen Continuous Integration (CI) und Testabläufe.
  • Sie bieten eine konsistente Umgebung für die Durchführung von Tests und gewährleisten so, dass die Testergebnisse zuverlässig und reproduzierbar sind.
  • Ob Sie Code entwickeln, testen oder bereitstellen – Entwicklungscontainer vereinfachen den Prozess und verbessern die Konsistenz.

 

Cloud-native Entwicklung

  • Dev-Container bilden die Grundlage für Cloud-native Entwicklungspraktiken
  • Sie entsprechen den DevOps Prinzipien, CI/CD-Pipelines und serverlosen Architekturen.
  • Containerbasierte Anwendungen können nahtlos in verteilten Cloud-Umgebungen ausgeführt werden und sind daher ideal für die moderne Entwicklung.

 

Worin unterscheiden sich Entwicklungscontainer?

Bei der typischen hostbasierten Entwicklung befinden sich alle Elemente wie Editor, SDKs, Anwendungsserver, Tools und Pakete sowie der Quellcode in einer einzigen Umgebung. Dies führt häufig zu Softwarekonflikten zwischen Projekten.

Wenn es zu Konflikten kommt, müssen die Entwickler Versionen dieser Abhängigkeiten wählen, die nicht mit den idealen Versionen übereinstimmen, nur um die Verwendung mehrerer Quellcodebasen aufrechtzuerhalten.

Hostbasierte Entwicklung

Bei der containerbasierten Entwicklung werden die benötigten SDKs, Anwendungsserver, Tools und Pakete, einschließlich Rocket® Enterprise Developer, in einem Container installiert. Der Quellcode kann entweder in den Container geladen oder in diesen eingebunden werden, wodurch eine vollständige Isolation gewährleistet ist.

Dev-Container-basierte Entwicklung

Betrachten wir dies im Kontext der MSS-Anwendungsentwicklung, wo häufig geschäftliche Anforderungen an die Auslieferung in unterschiedlichen Abständen bestehen. Die Verwendung von Entwicklungscontainern ermöglicht es dem Entwickler, an verschiedenen „Versionen“ der Anwendung zu arbeiten, ohne viel Zeit für die Neukonfiguration seiner Entwicklungsumgebung aufwenden zu müssen.

 

Demo

Um Ihnen eine Vorstellung davon zu geben, wie das alles funktioniert, schauen Sie sich bitte das folgende Video an.

 

Kombination von Entwicklungscontainern und Unit-Tests

Dev-Container bieten Entwicklern einen unkomplizierten Zugriff auf ihre Entwicklungswerkzeuge und entsprechen damit modernen Entwicklungsmethoden. Ideal für diese Art der Entwicklung ist die Verwendung von Unit-Tests, um das Testen des geänderten Codes vor der Einbindung in den CI/CD-Prozess zu vereinfachen und zu beschleunigen. Unit-Tests reduzieren zudem die Fehlerrate in den späteren, funktionaleren Testphasen des Software-Entwicklungs- und -Collection-Prozesses (SLDC).

COBOL [OC1]-Unit-Tests sind in Rocket® Enterprise Developer bereits seit mehreren Versionen verfügbar. In Version 9.0 wurde diese Funktion erweitert, um das Mocken und Stubben von MSS-Codierungsstrukturen wie CICS und SQL zu ermöglichen. In Version 10.0 wurde die IMS-Unterstützung hinzugefügt. Dadurch kann der geänderte Geschäftslogik-Code getestet werden, ohne dass eine vollständige MSS-Subsystemumgebung erforderlich ist.

Durch die Kombination dieser beiden Funktionen von Enterprise Developer können Entwickler die Vorteile moderner Entwicklungsmethoden nutzen und Wartungsänderungen im Rahmen des Softwareentwicklungszyklus (SDLC) beschleunigen. Dies ist besonders vorteilhaft für Organisationen, die diese Änderungen teilweise oder vollständig an Drittanbieter auslagern.

Weitere Details zum Enterprise Developer Unit Test Framework finden Sie in diesem zugehörigen Blogbeitrag. Um zu sehen, wie Unit-Tests in einem Entwicklungscontainer funktionieren, schauen Sie sich das folgende Video an.

 

Was kommt als Nächstes für Dev Containers?

Mit der zunehmenden Verbreitung von Cloud-Plattformen in der Softwareentwicklung steigt auch die Nutzung gehosteter Entwicklungswerkzeuge. Ein Beispiel hierfür sind GitHub Codespaces, die Umgebungen für die Entwicklung von Code von überall aus bieten. Die Entwicklungsfunktionen werden in der Cloud auf Basis von Dev Containers verwaltet und sind über einen Browser mit der Webversion von VS Code zugänglich.

Wir bei Rocket Software sind überzeugt, dass diese Umgebungen in der Zukunft der MSS-Anwendungsentwicklung eine wichtige Rolle spielen werden und arbeiten an der Bereitstellung von Enterprise Developer für GitHub Codespaces. Einen ersten Eindruck von den Vorteilen dieser Innovation erhalten Sie im folgenden Video.

 

So können Sie Dev Containers ausprobieren

Wenn Sie bereits Enterprise Developer Kunde sind, laden Sie bitte Version 10.0 herunter und sehen Sie sich die Produktdokumentation hier an.

Falls Sie noch kein Kunde sind, folgen Sie bitte diesem Link, um eine Testversion von Enterprise Developer zu erhalten.

Wenn Sie an der zukünftigen Entwicklung von MSS-Anwendungen interessiert sind, helfen Sie bitte mit, die Innovation weiter voranzutreiben, indem Sie an der Umfrage teilnehmen.

Ähnliche Beiträge

Künstliche Intelligenz (KI)

Wir stellen Rocket EVA 2.0 vor.

6 Minuten Lesezeit
Rocket EVA 2.0 führt gesteuerte KI-Agenten für Mainframe- und Hybrid-IT-Systeme ein und unterstützt Teams dabei, Untersuchungen zu beschleunigen, Fachwissen zu erweitern und [...] anzuwenden.
Anwendungsmodernisierung

Wählen Sie den richtigen Weg für die KI-gestützte Codemodernisierung

3 Minuten Lesezeit
Rocket wurde im Gartner® Magic Quadrant™ für KI-gestützte Codemodernisierungstools als Herausforderer anerkannt.
Anwendungsmodernisierung

Finden Sie den Modernisierungspfad, der das schützt, was zählt.

6 Minuten Lesezeit
KI bietet einen größeren Mehrwert, wenn die Modernisierung mit dem Geschäftsverhalten beginnt und mit der Validierung endet.