saída do mainframe
Mainframe: COBOL e AS/400 para Go, Rust e TypeScript
Programas COBOL, grafos de jobs em JCL, telas CICS, arquivos VSAM e tabelas DB2 viram serviços em Go, um agendador comum, um cliente web e Postgres. Copybooks viram estruturas tipadas, decimal empacotado continua decimal, e cada job é comparado centavo a centavo com a sua saída de produção antes de assumir. AS/400 também: RPG, CL, arquivos descritos em DDS e telas 5250. Trinta dias para a saída completa, e o primeiro job stream migra em sete.
30 dias para a saída completa; o primeiro job stream migra em 7
As telas verdes saem por último, e a substituição continua orientada a teclado: operadores são mais rápidos no teclado que no mouse, e uma migração que os atrasa fracassa na mesa deles.
No z/OS
Grafo de jobs em JCL, programas COBOL, telas 3270, VSAM e DB2 embaixo.
- BATCH.JCLJCL
- PAYCALCCOBOL
- CICS screens3270
- VSAM filesflat
- DB2z/OS
Fora dele
Serviços em Go num agendador comum, Postgres, um cliente web que o operador percorre pelo teclado.
- batch runnerGo · cron
- paymentsGo
- web clientTypeScript
- postgresfrom VSAM + DB2
30 dias para a saída completa; o primeiro job stream migra em 7
Como o trabalho anda
- 01dias 1–5
Inventariar o grafo de jobs
Cada passo de JCL, cada dataset, cada programa que ele chama, em forma de grafo. E também as partes que ninguém menciona no kickoff: o job de FTP das três da manhã, o utilitário que só uma pessoa consegue reiniciar.
- 02dias 4–12
Mover o modelo de dados
Copybooks viram estruturas tipadas, VSAM e DB2 viram tabelas Postgres. EBCDIC, decimal empacotado e REDEFINES são resolvidos aqui, em vez de aparecerem faltando três dias para a virada.
- 035–9 dias por stream
Portar um stream e rodar os dois
O stream novo roda as mesmas entradas na mesma noite e a saída é comparada registro a registro. Ele assume quando as diferenças são zero, ou estão escritas e acordadas.
- 04por subsistema
Aposentar a região
As transações CICS migram para o cliente web, a LPAR encolhe e a linha de MIPS e licença finalmente cai. Essa é a parte sobre a qual o seu CFO estava perguntando.
O que a plataforma faz e o que uma pessoa faz
| O que a plataforma faz e o que uma pessoa faz | Quem faz | Notas |
|---|---|---|
| Fazer parsing de COBOL, JCL e copybooks | Plataforma | Manias de dialeto incluídas, e o copybook que entra onze vezes com REDEFINES diferentes. |
| Descobrir que programas ainda estão vivos | Os dois | Os logs de job respondem a maior parte. O resto precisa de alguém que se lembre de 2004. |
| Traduzir um programa | Plataforma | Revisado como pull request e reescrito na mão onde a saída de máquina parece COBOL traduzido. |
| Aritmética de ponto fixo | Plataforma | Decimal continua decimal. Um desvio de um centavo aparece na execução comparativa e a reprova. |
| Telas de operador | Engenheiro | Desenhadas com quem usa, orientadas a teclado, cronometradas contra a velocidade delas no 3270. |
| Janela de batch e virada | Engenheiro | Que noite, quem fica de plantão e como é o rollback às quatro da manhã. |
| A conversa com o fornecedor de licença | Engenheiro | Encaixar a saída nas datas de contrato vale dinheiro de verdade e ninguém automatiza isso. |
Quem faz o trabalho
Um time de engenheiros que lê COBOL e RPG para viver, com dezenas de migrações e mais de dez anos em máquinas como a sua: z/OS e AS/400, batch em JCL e transações CICS, VSAM, DB2 e IMS, copybooks com onze REDEFINES, decimal empacotado que tem de fechar no centavo. O seu pessoal de COBOL vai conversar com engenheiros que leem o mesmo código que eles.
Um job stream é o teste que sugerimos, e escopamos assim: portado, rodado contra as suas entradas de produção por alguns ciclos, com o diff registro a registro na mesa. Você julga um relatório de comparação sobre os seus dados em vez do nosso marketing.
Perguntas que engenheiros fazem
- Por que Go em vez de Java?
- Porque um job batch que sobe em milissegundos e chega como um único binário estático é mais fácil de agendar e de raciocinar às três da manhã. Se o seu time de plataforma é padronizado em Java, escrevemos Java, e nada do método muda.
- O que acontece com o nosso pessoal de COBOL?
- Eles viram as pessoas mais valiosas do projeto. Toda migração empaca em uma regra que ninguém escreveu, e só eles a conhecem. Nos planos que escrevemos, eles saem da manutenção e vão para o arbitramento.
- Os números vão bater exatamente?
- Esse é o critério de aceite, não uma aspiração. Campos COMP-3 viram decimal de ponto fixo, nunca ponto flutuante, e a execução comparativa reprova em uma diferença de um centavo. Onde a diferença é legítima, ela é registrada e aprovada antes de o stream virar.
- Por quanto tempo rodamos os dois sistemas?
- Até a comparação sair limpa, o que para a maioria dos streams significa de um a três ciclos. Em um job de fechamento mensal reexecutamos o período que você já gravou em vez de esperar o próximo, então um fechamento trimestral não acrescenta um trimestre ao projeto.
- Vocês também fazem AS/400?
- Fazemos: RPG e CL, arquivos descritos em DDS, telas verdes sobre 5250. A mecânica é a mesma do z/OS e o prazo costuma ser menor, porque o grafo de jobs é mais simples e as caixas são menores.
Comece por um job stream
O que ele faz, quando roda e o que quebra rio abaixo se ele terminar tarde. Com isso já voltamos com escopo, duração e preço para mover esse stream.
O formulário pergunta sobre job streams e janela de batch, então ajuda ter o agendador aberto.