sortie du mainframe
Sortie du mainframe : COBOL et AS/400 vers Go, Rust et TypeScript
Les programmes COBOL, les graphes JCL, les écrans CICS, les fichiers VSAM et les tables DB2 deviennent des services Go, un ordonnanceur ordinaire, un client web et du Postgres. Les copybooks deviennent des structures typées, le décimal condensé reste décimal, et chaque chaîne est comparée au centime près à votre sortie de production avant de prendre le relais. L'AS/400 aussi : RPG, CL, fichiers décrits en DDS et écrans 5250. Trente jours pour une sortie complète, et la première chaîne batch bascule en sept jours.
30 jours pour une sortie complète ; la première chaîne batch bascule en 7
Les écrans verts partent en dernier, et le remplacement reste au clavier : les opérateurs vont plus vite au clavier qu'à la souris, et une migration qui les ralentit échoue au poste de travail.
Sur z/OS
Graphe de jobs JCL, programmes COBOL, écrans 3270, VSAM et DB2 en dessous.
- BATCH.JCLJCL
- PAYCALCCOBOL
- CICS screens3270
- VSAM filesflat
- DB2z/OS
En dehors
Des services Go sur un ordonnanceur ordinaire, Postgres, un client web utilisable au clavier.
- batch runnerGo · cron
- paymentsGo
- web clientTypeScript
- postgresfrom VSAM + DB2
30 jours pour une sortie complète ; la première chaîne batch bascule en 7
Comment le travail se déroule
- 01jours 1–5
Inventorier le graphe de jobs
Chaque étape JCL, chaque dataset, chaque programme appelé, sous forme de graphe. Y compris ce dont personne ne parle au lancement : le job FTP de 3 h du matin, l'utilitaire qu'une seule personne sait relancer.
- 02jours 4–12
Déplacer le modèle de données
Les copybooks deviennent des structures typées, VSAM et DB2 deviennent des tables Postgres. EBCDIC, décimal condensé et REDEFINES se traitent ici, au lieu de se découvrir dans les derniers jours.
- 035 à 9 jours par chaîne
Porter une chaîne, faire tourner les deux
La nouvelle chaîne traite les mêmes entrées la même nuit et la sortie est comparée enregistrement par enregistrement. Elle prend le relais quand les différences sont nulles, ou écrites et acceptées.
- 04par sous-système
Retirer la région
Les transactions CICS passent sur le client web, la LPAR rétrécit, et la ligne MIPS et licences baisse enfin. C'est la partie sur laquelle votre direction financière posait des questions.
Ce que fait la plateforme, ce que fait un humain
| Ce que fait la plateforme, ce que fait un humain | Qui fait quoi | Notes |
|---|---|---|
| Analyser COBOL, JCL et copybooks | Plateforme | Bizarreries de dialecte comprises, et le copybook inclus onze fois avec des REDEFINES différents. |
| Établir quels programmes sont encore vivants | Les deux | Les logs de jobs répondent à l'essentiel. Le reste demande quelqu'un qui se souvient de 2004. |
| Traduire un programme | Plateforme | Relu comme une merge request, et réécrit à la main là où la sortie machine se lit comme du COBOL traduit. |
| Arithmétique en virgule fixe | Plateforme | Le décimal reste décimal. Une dérive d'un centime apparaît dans la comparaison et la fait échouer. |
| Les écrans opérateurs | Ingénieur | Dessinés avec les gens qui les utilisent, pilotables au clavier, chronométrés contre leur vitesse sur 3270. |
| Fenêtre batch et bascule | Ingénieur | Quelle nuit, qui est d'astreinte, et à quoi ressemble le retour arrière à 4 h du matin. |
| La discussion avec votre éditeur de licences | Ingénieur | Caler la sortie sur les dates de contrat vaut de l'argent réel et personne ne l'automatise. |
Qui fait le travail
Une équipe d'ingénieurs qui lisent le COBOL et le RPG pour gagner leur vie, avec des dizaines de migrations et plus de dix ans sur des machines comme la vôtre : z/OS et AS/400, batch JCL et transactions CICS, VSAM, DB2 et IMS, des copybooks à onze REDEFINES, du décimal condensé qui doit tomber au centime. Vos gens COBOL parleront à des ingénieurs qui lisent le même code qu'eux.
Une chaîne batch est le test que nous proposons, et nous la cadrons ainsi : portée, exécutée sur vos propres entrées de production pendant quelques cycles, avec le diff au niveau enregistrement sur la table. Vous jugez un rapport de comparaison sur vos données plutôt que notre marketing.
Questions que nous posent les ingénieurs
- Pourquoi Go plutôt que Java ?
- Parce qu'un job batch qui démarre en quelques millisecondes et se livre en un seul binaire statique est plus simple à ordonnancer et à comprendre à 3 h du matin. Si votre équipe plateforme est standardisée sur Java, nous écrivons du Java, et la méthode ne change en rien.
- Que deviennent nos gens COBOL ?
- Ils deviennent les personnes les plus précieuses du projet. Toute migration cale sur une règle que personne n'a écrite, et ils sont les seuls à la connaître. Dans les plans que nous écrivons, ils passent de la maintenance à l'arbitrage.
- Les chiffres vont-ils coïncider exactement ?
- C'est le critère d'acceptation, pas un souhait. Les champs COMP-3 deviennent du décimal en virgule fixe, jamais du flottant, et la comparaison échoue sur un centime d'écart. Quand un écart est légitime, il est écrit et validé avant que la chaîne bascule.
- Combien de temps fait-on tourner les deux systèmes ?
- Jusqu'à ce que la comparaison soit propre, ce qui fait un à trois cycles pour la plupart des chaînes. Pour un job de clôture mensuelle, nous rejouons le mois que vous avez déjà enregistré au lieu d'attendre le suivant, si bien qu'une clôture trimestrielle n'ajoute pas un trimestre au projet.
- Faites-vous aussi l'AS/400 ?
- Oui : RPG et CL, fichiers décrits en DDS, écrans verts en 5250. La mécanique est la même que sur z/OS et le calendrier est en général plus court, parce que le graphe de jobs est plus simple et les machines plus petites.
Commencez par une chaîne batch
Ce qu'elle fait, quand elle tourne, et ce qui casse en aval si elle finit en retard. Cela nous suffit pour revenir avec un périmètre, une durée et un prix pour la déplacer.
Le formulaire demande les chaînes batch et la fenêtre de traitement, alors gardez l'ordonnanceur ouvert.