Introdução

O PL/I, uma linguagem de programação frequentemente associada a sistemas legados, continua a desempenhar um papel crucial em muitas organizações. No entanto, à medida que o cenário tecnológico evolui, é essencial encontrar maneiras de integrar essas aplicações legadas com práticas modernas de desenvolvimento e DevOps. Este tutorial foca em como modernizar aplicações PL/I usando ferramentas contemporâneas de DevOps e automação de testes. Vamos explorar o processo de integração passo a passo, desde a estruturação da aplicação até a implementação de pipelines de CI/CD e a automação de testes, proporcionando uma abordagem prática e educativa para desenvolvedores que desejam revitalizar suas aplicações antigas e mantê-las relevantes no contexto atual.

Etapas

  1. Preparação do Ambiente de Desenvolvimento

    Certifique-se de ter um ambiente de desenvolvimento preparado para PL/I. Utilize o IBM Enterprise PL/I se estiver trabalhando em uma plataforma IBM. Instale ferramentas modernas como Jenkins para integração contínua e Git para controle de versão. Verifique se você tem acesso a um servidor de teste onde suas aplicações PL/I possam ser implantadas.

    commands
    # Instalar Jenkins
    sudo apt install jenkins
    # Iniciar o Jenkins
    sudo systemctl start jenkins

  2. Estrutura do Projeto PL/I

    Inicie com uma estrutura de diretórios para sua aplicação PL/I. Mantenha seu código organizado em módulos e crie uma documentação básica para cada componente.

    structure
    my_project/
    ├── src/
    │   └── main/
    │       └── pli/
    │           └── my_application.pli
    └── README.md

  3. Integração com Git para Controle de Versão

    Crie um repositório Git para seu projeto PL/I. Adicione todos os seus arquivos e faça o commit das alterações iniciais. Isso permitirá rastrear mudanças e colaborar com outros desenvolvedores.

    commands
    # Inicializar repositório Git
    git init
    # Adicionar arquivos ao repositório
    git add .
    # Fazer o commit das alterações
    git commit -m 'Estrutura inicial do projeto PL/I'

  4. Automação de Testes com REXX

    Utilize REXX para criar um conjunto de testes automatizados para sua aplicação PL/I. Escreva scripts que possam invocar os módulos PL/I e verificar a saída em comparação com os resultados esperados.

    test.rexx
    /* Teste básico para o módulo PL/I */
    address PL/I 'MY_APPLICATION'
    
    /* Verificar saída esperada */
    if (output = expected) then
        say 'Teste passou'
    else
        say 'Teste falhou'

  5. Configuração do Jenkins para CI/CD

    Configure um pipeline no Jenkins para compilar, testar e implantar sua aplicação PL/I. Utilize o plugin de shell do Jenkins para executar seus scripts de teste REXX como parte do processo de CI.

    Jenkinsfile
    pipeline {
        agent any
        stages {
            stage('Build') {
                steps {
                    sh 'compile_my_application.sh'
                }
            }
            stage('Test') {
                steps {
                    sh 'run_tests.sh'
                }
            }
            stage('Deploy') {
                steps {
                    sh 'deploy_my_application.sh'
                }
            }
        }
    }

  6. Execução da Integração Contínua

    Uma vez configurado o Jenkins, inicie uma nova construção para ver se tudo está funcionando conforme o esperado. Observe os logs de construção e teste para identificar possíveis erros e otimizar o pipeline.

    commands
    # Acesse o Jenkins no navegador
    http://localhost:8080
    # Inicie uma nova execução do pipeline

Conclusão

Neste tutorial, demonstramos como modernizar aplicações legadas em PL/I integrando práticas e ferramentas modernas de DevOps e automação de testes. Abordamos desde a estruturação do projeto até a configuração de um pipeline de CI/CD no Jenkins. Esse processo não só ajuda a manter o código organizado e testado, mas também torna as aplicações legadas mais robustas e flexíveis em um ambiente de desenvolvimento ágil. Ao aplicar essas práticas, você poderá revitalizar suas aplicações PL/I, garantindo que elas permaneçam relevantes e eficientes.

Hashtags

#PLI #DevOps #CI/CD #AutomaçãoDeTestes #Jenkins #DesenvolvimentoDeSoftware