salida del mainframe
Modernización de mainframe: COBOL y AS/400 a Go, Rust y TypeScript
Los programas COBOL, los grafos de JCL, las pantallas CICS, los ficheros VSAM y las tablas DB2 pasan a servicios Go, un planificador normal, un cliente web y Postgres. Los copybooks se convierten en estructuras tipadas, el decimal empaquetado sigue siendo decimal, y cada cadena se compara al céntimo con su salida de producción antes de tomar el relevo. También AS/400: RPG, CL, ficheros descritos con DDS y pantallas 5250. Treinta días para la salida completa, y la primera cadena de trabajos se mueve en siete.
30 días para la salida completa; la primera cadena de trabajos se mueve en 7
Las pantallas verdes se van las últimas, y el reemplazo sigue siendo de teclado: los operadores van más rápido con teclado que con ratón, y una migración que los frena fracasa en el puesto.
En z/OS
Grafo de trabajos JCL, programas COBOL, pantallas 3270, VSAM y DB2 debajo.
- BATCH.JCLJCL
- PAYCALCCOBOL
- CICS screens3270
- VSAM filesflat
- DB2z/OS
Fuera
Servicios Go en un planificador normal, Postgres y un cliente web que se maneja con el teclado.
- batch runnerGo · cron
- paymentsGo
- web clientTypeScript
- postgresfrom VSAM + DB2
30 días para la salida completa; la primera cadena de trabajos se mueve en 7
Cómo va el trabajo
- 01días 1–5
Inventariar el grafo de trabajos
Cada paso de JCL, cada dataset, cada programa al que llama, como un grafo. También las partes que nadie menciona en la reunión inicial: el trabajo de FTP de las 3 de la mañana, la utilidad que solo una persona sabe relanzar.
- 02días 4–12
Mover el modelo de datos
Los copybooks pasan a estructuras tipadas, VSAM y DB2 pasan a tablas de Postgres. EBCDIC, decimal empaquetado y REDEFINES se resuelven aquí en vez de descubrirse al final.
- 035–9 días por cadena
Portar una cadena y correr las dos
La cadena nueva procesa las mismas entradas la misma noche y la salida se compara registro a registro. Toma el relevo cuando las diferencias son cero, o están escritas y aceptadas.
- 04por subsistema
Retirar la región
Las transacciones CICS pasan al cliente web, la LPAR encoge y la partida de MIPS y licencias baja por fin. Esta es la parte por la que preguntaba su director financiero.
Qué hace la plataforma y qué hace una persona
| Qué hace la plataforma y qué hace una persona | Quién hace qué | Notas |
|---|---|---|
| Analizar COBOL, JCL y copybooks | Plataforma | Con las rarezas del dialecto incluidas, y el copybook que se incluye once veces con REDEFINES distintos. |
| Averiguar qué programas siguen vivos | Los dos | Los logs de trabajos responden a casi todo. El resto necesita a alguien que se acuerde de 2004. |
| Traducir un programa | Plataforma | Revisado como una merge request y reescrito a mano donde la salida de máquina se lee como COBOL traducido. |
| Aritmética de coma fija | Plataforma | El decimal sigue siendo decimal. Una desviación de un céntimo aparece en la comparación y la suspende. |
| Las pantallas de operación | Ingeniero | Diseñadas con quien las usa, de teclado primero, cronometradas contra lo rápidos que eran en 3270. |
| Ventana de batch y cambio | Ingeniero | Qué noche, quién está de guardia y qué aspecto tiene la vuelta atrás a las 4 de la mañana. |
| La conversación con su proveedor de licencias | Ingeniero | Ajustar la salida a las fechas de contrato vale dinero de verdad y no lo automatiza nadie. |
Quién hace el trabajo
Un equipo de ingenieros que vive de leer COBOL y RPG, con decenas de migraciones y más de diez años sobre máquinas como la suya: z/OS y AS/400, batch de JCL y transacciones CICS, VSAM, DB2 e IMS, copybooks con once REDEFINES, decimal empaquetado que tiene que caer en el céntimo. Su gente de COBOL va a estar hablando con ingenieros que leen el mismo código que ellos.
Una cadena de trabajos es la prueba que proponemos, y la acotamos así: portada, ejecutada contra sus propias entradas de producción durante unos ciclos, con el diff a nivel de registro encima de la mesa. Juzga un informe de comparación sobre sus datos y no nuestro marketing.
Preguntas que nos hacen los ingenieros
- ¿Por qué Go y no Java?
- Porque un trabajo batch que arranca en milisegundos y se entrega como un único binario estático es más fácil de planificar y de razonar a las 3 de la mañana. Si su equipo de plataforma está estandarizado en Java, escribimos Java, y el método no cambia en nada.
- ¿Qué pasa con nuestra gente de COBOL?
- Se convierten en las personas más valiosas del proyecto. Toda migración se atasca en una regla que nadie escribió, y ellos son los únicos que la conocen. En los planes que escribimos pasan de mantener a arbitrar.
- ¿Van a cuadrar las cifras exactamente?
- Ese es el criterio de aceptación, no una aspiración. Los campos COMP-3 pasan a decimal de coma fija, nunca a coma flotante, y la comparación falla con un céntimo de diferencia. Cuando una diferencia es legítima, se escribe y se aprueba antes de que la cadena cambie.
- ¿Cuánto tiempo corren los dos sistemas a la vez?
- Hasta que la comparación esté limpia, que para casi todas las cadenas son entre uno y tres ciclos. En un trabajo de cierre repetimos el periodo que usted ya tiene grabado en vez de esperar al siguiente, así que un cierre trimestral no le añade un trimestre al proyecto.
- ¿Hacen también AS/400?
- Sí: RPG y CL, ficheros descritos con DDS, pantallas verdes sobre 5250. La mecánica coincide con z/OS y el calendario suele ser más corto, porque el grafo de trabajos es más simple y las máquinas son más pequeñas.
Empiece por una cadena de trabajos
Qué hace, cuándo corre y qué se rompe aguas abajo si termina tarde. Con eso volvemos con un alcance, una duración y un precio para moverla.
El formulario pregunta por las cadenas de trabajos y la ventana de batch, así que ayuda tener el planificador abierto.