Mainframe-Ablösung
Mainframe-Modernisierung: COBOL und AS/400 nach Go, Rust und TypeScript
COBOL-Programme, JCL-Jobgraphen, CICS-Masken, VSAM-Dateien und DB2-Tabellen werden zu Go-Services, einem gewöhnlichen Scheduler, einer Weboberfläche und Postgres. Copybooks werden typisierte Strukturen, gepackte Dezimalzahlen bleiben dezimal, und jeder Job wird auf den Cent gegen Ihre Produktivausgabe verglichen, bevor er übernimmt. AS/400 genauso: RPG, CL, DDS-beschriebene Dateien und 5250-Masken. Dreißig Tage für den vollständigen Ausstieg, und der erste Job-Strom zieht in sieben Tagen um.
30 Tage für den vollständigen Ausstieg; der erste Job-Strom zieht in 7 um
Die grünen Masken kommen zuletzt, und der Ersatz bleibt tastaturzuerst: Operatoren sind auf der Tastatur schneller als mit der Maus, und eine Migration, die sie ausbremst, scheitert am Schreibtisch.
Auf z/OS
JCL-Jobgraph, COBOL-Programme, 3270-Masken, VSAM und DB2 darunter.
- BATCH.JCLJCL
- PAYCALCCOBOL
- CICS screens3270
- VSAM filesflat
- DB2z/OS
Runter davon
Go-Services auf einem gewöhnlichen Scheduler, Postgres, eine Weboberfläche zum Durchtippen.
- batch runnerGo · cron
- paymentsGo
- web clientTypeScript
- postgresfrom VSAM + DB2
30 Tage für den vollständigen Ausstieg; der erste Job-Strom zieht in 7 um
Wie die Arbeit läuft
- 01Tag 1–5
Den Jobgraphen aufnehmen
Jeder JCL-Schritt, jedes Dataset, jedes aufgerufene Programm, als Graph. Auch die Teile, die beim Kickoff niemand erwähnt: der FTP-Job um drei Uhr nachts, das Hilfsprogramm, das nur eine Person neu starten kann.
- 02Tag 4–12
Das Datenmodell umziehen
Copybooks werden typisierte Strukturen, VSAM und DB2 werden Postgres-Tabellen. EBCDIC, gepacktes Dezimal und REDEFINES werden hier erledigt, statt kurz vor Schluss entdeckt zu werden.
- 035–9 Tage je Strom
Einen Strom portieren, beide fahren
Der neue Strom läuft in derselben Nacht auf denselben Eingaben, und die Ausgabe wird Satz für Satz verglichen. Er übernimmt, wenn die Abweichungen null sind oder aufgeschrieben und abgestimmt.
- 04je Teilsystem
Die Region stilllegen
CICS-Transaktionen ziehen in die Weboberfläche, die LPAR schrumpft, und die Zeile für MIPS und Lizenzen geht endlich nach unten. Nach diesem Teil hat Ihr Finanzchef gefragt.
Was die Plattform macht, was ein Mensch macht
| Was die Plattform macht, was ein Mensch macht | Wer macht was | Anmerkungen |
|---|---|---|
| COBOL, JCL und Copybooks parsen | Plattform | Dialekt-Eigenheiten inklusive, und das Copybook, das elfmal mit unterschiedlichen REDEFINES eingebunden ist. |
| Herausfinden, welche Programme noch leben | Gemeinsam | Job-Logs beantworten das meiste. Für den Rest braucht es jemanden, der sich an 2004 erinnert. |
| Ein Programm übersetzen | Plattform | Als Pull Request geprüft und von Hand neu geschrieben, wo die Maschinenausgabe wie übersetztes COBOL klingt. |
| Festkomma-Arithmetik | Plattform | Dezimal bleibt dezimal. Ein Cent Abweichung taucht im Vergleichslauf auf und lässt ihn scheitern. |
| Operator-Masken | Entwickler | Mit den Leuten gestaltet, die sie benutzen, tastaturzuerst, gestoppt gegen ihr Tempo auf 3270. |
| Batch-Fenster und Umstellung | Entwickler | Welche Nacht, wer Bereitschaft hat, und wie der Rückweg um vier Uhr morgens aussieht. |
| Das Gespräch mit Ihrem Lizenzgeber | Entwickler | Den Ausstieg gegen Vertragstermine zu legen ist echtes Geld wert, und das automatisiert niemand. |
Wer die Arbeit macht
Ein Team von Entwicklern, die COBOL und RPG beruflich lesen, mit Dutzenden Migrationen und über zehn Jahren auf Maschinen wie Ihrer: z/OS und AS/400, JCL-Batch und CICS-Transaktionen, VSAM, DB2 und IMS, Copybooks mit elf REDEFINES, gepacktes Dezimal, das auf den Cent landen muss. Ihre COBOL-Leute sprechen mit Entwicklern, die denselben Code lesen wie sie.
Als Prüfung schlagen wir einen Job-Strom vor und schneiden ihn genau so zu: portiert, über ein paar Zyklen gegen Ihre eigenen Produktiv-Eingaben gefahren, mit dem satzweisen Abweichungsbericht auf dem Tisch. Sie beurteilen einen Vergleichsbericht zu Ihren eigenen Daten statt unser Marketing.
Fragen, die Entwickler uns stellen
- Warum Go und nicht Java?
- Weil ein Batch-Job, der in Millisekunden startet und als eine einzige statische Binärdatei ausgeliefert wird, leichter zu planen und um drei Uhr nachts leichter zu durchdenken ist. Wenn Ihr Plattformteam auf Java festgelegt ist, schreiben wir Java, und an der Methode ändert das nichts.
- Was wird aus unseren COBOL-Leuten?
- Sie werden die wertvollsten Leute im Projekt. Jede Migration bleibt an einer Regel hängen, die niemand aufgeschrieben hat, und nur sie kennen sie. In unseren Plänen wechseln sie von der Wartung ins Entscheiden.
- Werden die Zahlen exakt übereinstimmen?
- Das ist das Abnahmekriterium, keine Absichtserklärung. COMP-3-Felder werden Festkomma-Dezimal, niemals Gleitkomma, und der Vergleichslauf scheitert an einem Cent Unterschied. Wo eine Abweichung berechtigt ist, wird sie aufgeschrieben und abgezeichnet, bevor der Strom umschaltet.
- Wie lange fahren wir beide Systeme?
- Bis der Vergleich sauber ist, bei den meisten Strömen also ein bis drei Zyklen. Bei einem Monatsabschluss spielen wir den Monat ab, den Sie ohnehin schon aufgezeichnet haben, statt auf den nächsten zu warten; ein Quartalsabschluss hängt dem Projekt also kein Quartal an.
- Machen Sie auch AS/400?
- Ja: RPG und CL, DDS-beschriebene Dateien, grüne Masken über 5250. Die Mechanik entspricht z/OS, und der Zeitplan ist meist kürzer, weil der Jobgraph einfacher und die Maschinen kleiner sind.
Fangen Sie mit einem Job-Strom an
Was er tut, wann er läuft und was weiter hinten bricht, wenn er zu spät fertig wird. Das reicht uns, um mit Umfang, Dauer und Preis für den Umzug zurückzukommen.
Das Formular fragt nach Job-Strömen und dem Batch-Fenster, es hilft also, den Scheduler offen zu haben.