Ir para o conteúdo

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.

Pedir orçamentoQuatro telas sobre a máquina, os job streams e a data. A resposta vem de um engenheiro que lê COBOL.

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

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.

Como o trabalho anda

Um job stream por vez, rodando em paralelo com o seu, comparado registro a registro.
  1. 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.

  2. 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.

  3. 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.

  4. 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

Fazer o parsing de quarenta anos de COBOL é trabalho de máquina, e a plataforma faz isso em dias. Saber quais desses programas ainda importam é o motivo de os nossos engenheiros sentarem com os seus.
É a execução comparativa que decide se um stream está pronto. Nenhum dos dois lados pode passar por cima dela com uma opinião.
O que a plataforma faz e o que uma pessoa fazQuem fazNotas
Fazer parsing de COBOL, JCL e copybooksPlataformaManias de dialeto incluídas, e o copybook que entra onze vezes com REDEFINES diferentes.
Descobrir que programas ainda estão vivosOs doisOs logs de job respondem a maior parte. O resto precisa de alguém que se lembre de 2004.
Traduzir um programaPlataformaRevisado como pull request e reescrito na mão onde a saída de máquina parece COBOL traduzido.
Aritmética de ponto fixoPlataformaDecimal continua decimal. Um desvio de um centavo aparece na execução comparativa e a reprova.
Telas de operadorEngenheiroDesenhadas com quem usa, orientadas a teclado, cronometradas contra a velocidade delas no 3270.
Janela de batch e viradaEngenheiroQue noite, quem fica de plantão e como é o rollback às quatro da manhã.
A conversa com o fornecedor de licençaEngenheiroEncaixar 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.

Pedir orçamento

O formulário pergunta sobre job streams e janela de batch, então ajuda ter o agendador aberto.