0

Aplicação Legada em Delphi com CI/CD

#Jenkins #Git #Integração
Geovane Santos
Geovane Santos

Olá Devs!


Em meu primeiro post, vou compartilhar com vocês um desafio que tive há alguns meses na empresa em que trabalho.


Foi me proposto incluir uma aplicação Delphi ao processo de CI/CD, ou seja, tornar o processo de integração e entrega contínuos, e confesso: foi um grande desafio! Principalmente por ser uma aplicação legada e com tecnologia antiga.


Até então os builds eram gerados apenas na máquina do desenvolvedor (no caso a minha) e o artefato gerado (.exe) teria que ser transportado manualmente até o servidor.


Não foram poucas as vezes em que tive que parar meu raciocínio na criação de alguma lógica, para poder buildar uma outra feature que o time de QA havia acabado de testar e estava pronto para implantar em produção.


Eu sempre tinha que parar o que estava fazendo, trocar de branch, buildar, implantar o artefato no servidor para só depois retornar ao meu raciocínio anterior.

Além de perder o foco e o tempo, estávamos suscetíveis a erros no processo de construção e implantação, visto que era feito tudo manualmente.


Pois bem, a partir dessa necessidade comecei a aprofundar o conhecimento em algumas ferramentas que seriam necessárias para tornar o processo automatizado com CI/CD:

• GIT;

• VirtualBox;

• Vagrant;

• Jenkins;


As duas primeiras (git e virtualbox) eu já tinha algum conhecimento, porém as duas últimas (vagrant e jenkins) não sabia praticamente nada, o que tornou essa missão um verdadeiro desafio.


Foram algumas semanas de muitas tentativas com erros e acertos que finalmente o desafio foi vencido.


Hoje quando surge a necessidade de colocar no ar uma feature, o responsável por implantar a solução, inicia um Pipeline no Jenkins que se conecta no VirtualBox através do Vagrant, que por sua vez inicia uma VM que contém scripts que se conectam no GIT, baixa e compila a aplicação. Depois de compilado o artefato gerado (.exe) é levado até o servidor e o processo é finalizado. Tudo de forma automatizada!

(não vou me ater aos detalhes de cada configuração para não ser cansativo).


Por ser uma aplicação legada e com tecnologia antiga, algumas coisas ficaram limitadas, como por exemplo o build depender de uma máquina virtual Windows.


Porém os riscos de buildar e implantar já foram minimizados com a automatização.

Ah! e não preciso mais parar as atividades (perder o foco) para buildar a aplicação na minha máquina, pois depois do pipeline startado é só esperar que tudo será feito sem nenhuma intervenção humana.


Uma dica que quero deixar com isso, se algo te "incomoda" e você vê que pode ser melhorado com automatização, dedique-se um tempo para isso, não tenha medo de tentar porque não conhece, pois eu também não conhecia, levou um tempo até aprender e ver o resultado. Tente! Com muito esforço você chegará lá.

Isso fará bem para você e sua carreira.


Quem sabe algum dia eu posto um outro artigo aprofundando em mais detalhes de CI/CD.


Obrigado pela leitura DEV.

0
8

Comentários (1)

1
Lucas Cruz

Lucas Cruz

09/09/2021 16:59

Mt bacanaaa!! CI/CD 'e muitissimo interessante e por ser aplicado a um legado eu confesso que achei curioso. Nunca pensei nisso antes rs.

Desenvolvedor Delphi e Java em Indústria Farmacêutica