Autor: Eng. de Software Salvador Bila, da Alien Group, lda
Pipelines de CI/CD consistem em uma série de etapas a serem realizadas para a disponibilização de uma nova versão de um software. tal como referimos no artigo passado, os pipelines (CI/CD) têm como objectivo acelerar a disponibilização de softwares, adoptando a abordagem de DevOps. Sendo a segunda parte do conteúdo sobre CI/CD, abordaremos sobre as suas vantagens.
O pipeline de CI/CD inclui monitoramento e automação para melhorar o processo de desenvolvimento de aplicações principalmente nos estágios de integração e teste, mas também na entrega e na implantação.
Temos na figura abaixo as etapas que compõem um pipeline de CI/CD. São subconjuntos distintos de tarefas agrupadas que chamamos de estágio do pipeline.
Esta não é de forma alguma uma lista completa dos estágios do pipeline. Trata-se apenas de um exemplo dos estágios mais comuns.
Temos alguns benefícios de um pipeline automatizado:
-
Velocidade aumentada: as equipas melhoram tanto a velocidade de lançamentos quanto a qualidade do código. Novos recursos, melhorias e correções são adicionadas continuamente em pequenos incrementos resultando num produto com menos defeitos, permitindo ser mais competitivo.
-
Redução dos riscos e custos: A automação incentiva os desenvolvedores a verificar as alterações de código em etapas antes de avançar, reduzindo as chances de erros que poderiam ser submetidos em produção. Permite que as alterações sejam testadas de várias maneiras antes de serem implantadas em produção.
-
Equipa de desenvolvimento mais forte: melhora a comunicação entre as equipas, porque os estágios de pipeline do deploy estão disponíveis para qualquer pessoa da equipa examinar, trazendo assim melhor colaboração entre as equipas.
-
Redução na pilha de trabalho: os estágios de pipeline fornecem um ciclo de feedback rápido a partir de desenvolvimento e seus clientes. Este ciclo de interacção não só ajuda a construir o produto certo, mas permite que os desenvolvedores submetam melhorias rapidamente e reduzam o trabalho.
Na ausência de um pipeline automatizado, os engenheiros ainda precisam realizar essas etapas manualmente e, portanto, de maneira muito menos produtiva.
Importância do Uso de CI/CD
A integração e entrega contínua podem agilizar o fluxo de trabalho dentro de uma equipa e promover maior controlo através de ferramentas de automação, e escalar sistemas com segurança.
Este é o conceito por trás dos processos de integração contínua (CI), deploy e implantação contínua (CD) que permitem, ao mesmo tempo, agilidade no desenvolvimento de novas funcionalidades pela equipa de trabalho e o acompanhamento em tempo real do processo por parte do cliente. A implantação de uma rotina de integração, deploy e implantação contínua, porém, precede da junção entre as áreas de desenvolvimento e operação de softwares, o chamado DevOps.
Para melhorar o entendimento sobre a importância do CI/CD na empresa, temos o exemplo do “SaaS CI” que foi desenvolvido pela Alien Group, e integrado na plataforma Odoo.
“SaaS CI” é um módulo Odoo baseado em CI/CD Pipeline e Kubernetes, que tem ajudado a equipa de desenvolvimento e de operações a ter o controlo dos processos da pipeline, bem como geri-lo. A equipa de desenvolvimento poderá usar o repositório git para enviar a solicitação de PR (Pull Request), que posteriormente passará automaticamente para o processo do deployment da build, e o processo de construção de builds pode ser manual, directamente do “Saas CI”.
O módulo Odoo “SaaS CI” requer uma conexão com a Internet para pesquisar e exibir os resultados, como também para receber solicitações vindas do sistema de controlo de versões. Todas as informações do sistema são mantidas em um banco de dados Odoo, localizado em um servidor postgres. “SaaS CI” interage com o servidor de controlo de versões, neste projecto foram usado, o Tuleap e Gitea como os servidores de controlo de versão, que já se encontram preparado para gerir os repositórios internos e dos clientes, e o servidor K8s onde é feito os deployments das aplicações.
O módulo Odoo “Saas CI” melhorou bastante a prestação de serviços aos seus clientes, trouxe maior agilidade na entrega do desenvolvimento dos seus produtos. Vem também com tudo isso evitar possíveis transtornos que seriam encarados pelos gestores, desde o controlo da qualidade do produto e a rapidez na entrega, bem como o acesso aos produtos internos da empresa.
Ferramentas que podem apoiar o CI/CD
Abaixo algumas ferramentas que podem ajudar na sua jornada de implantação da cultura DevOps, com integração, deploy e implantação contínua:
Conclusão
Tendo chegado ao fim, pude concluir que o uso do CI/CD nas empresas é atualmente um processo indispensável, pois estas se tornaram uma forma prática, viável, econômica e muito abrangente de modo a facilitar o trabalho das equipas. No final, cabe à sua empresa decidir se a utilização das práticas DevOps de deploy ou implantação contínua e integração contínua será benéfica.
No final, todos esses “processos contínuos” contribuem para remover a sobrecarga no processo de desenvolvimento, coisas como “mesclar” código, testar recursos novamente após um “merge”, implantação manual dos serviços, etc., normalmente não contribuem para o valor de um serviço, portanto, as práticas de integração, entrega e implantação contínua, visam reduzir esses custos do processo.