Antes de entendermos um pipeline de CI/CD, vamos dar um passo para trás e entender a entrega de software. Um pipeline de entrega de software é uma série de estágios dependentes pelos quais um código/pacote/artefato flui do sistema do desenvolvedor para um servidor de produção. A jornada do sistema do desenvolvedor não é simples e o código precisa passar por vários estágios antes de ser implantado na produção.

O código progredirá desde o check-in do código até os estágios de teste, construção, implantação e produção. Os engenheiros ao longo dos anos automatizaram as etapas desse processo. A automação levou a dois processos principais conhecidos como Integração Contínua e Entrega Contínua .

Definição padrão: um pipeline de CI/CD é definido como uma série de etapas interconectadas que incluem estágios de confirmação de código, teste, preparo, teste de implantação e, finalmente, implantação nos servidores de produção. Automatizamos a maioria desses estágios para criar uma entrega de software perfeita.

Standard-DevOps-CICD


Componentes de um pipeline de CI/CD

Para que um pipeline CI CD funcione, exigimos uma série de subprocessos ou estágios que precisam verificar e verificar continuamente as atualizações de código. Esses subestágios são os seguintes:

Integração contínua:

  • Confirmação de código
  • Análise de Código Estático
  • Construir, e
  • Etapas/cenários de teste

Neste ponto, temos o que o time de SRE entrega e o que o time de Produto entrega. No caso do time de produto, temos um time inteiro focado em construir, "comitar" e elaborar os testes das soluções antes que iniciemos o trabalho de "Empacotar" ou fazer a "Entrega Continua".  No caso do time de SRE, fazemos o mesmo processo, porém focados em nossas ferramentas e/ou apis de integração para o funcionamento do produto Protheus.

Entrega Contínua:

  • Buildar
  • Implantar
  • Teste e verificação de implantação
  • Monitoramento, e
  • Opinião