coldwa.st
Todos os guiasProgramaçãoWebDadosFerramentasBases de dadosHaskellConceitosCabal e buildsToolchainCompiladorDesempenhoEditor e HLS

Programação · DevOps · automação

O que é o CI/CD?

Por ColdwastAtualizado a 22 de junho de 20268 min de leitura#cicd#devops#automation
Um braço robótico industrial numa linha de produção automatizada
O CI/CD é uma linha de montagem para software — cada alteração no código é construída, testada e enviada automaticamente, tal como uma linha robótica leva uma peça por cada etapa.

Quando uma equipa começa a lançar software com regularidade, uma pergunta decide com que rapidez e segurança avança: como é que uma alteração no código chega do portátil de um programador até produção, a funcionar ao vivo? A resposta moderna é o CI/CD. Este guia explica o que significa o CI/CD, como funciona um pipeline, as ferramentas envolvidas e porque se tornou prática comum.

A definição curta

O CI/CD automatiza o percurso de uma alteração no código até uma aplicação testada e implementada. Significa integração contínua (Continuous Integration) e entrega contínua (Continuous Delivery) ou implementação contínua (Deployment). Juntas, substituem as etapas manuais lentas e propensas a erros — construir, testar, lançar — por um pipeline automatizado que corre sempre que o código muda. Menos trabalho manual, menos erros, lançamentos mais rápidos.

CI: integração contínua

A integração contínua é a prática de fundir alterações de código num repositório partilhado com frequência — várias vezes por dia — e construir e testar cada alteração automaticamente. No momento em que faz push, o pipeline compila o código e corre o conjunto de testes. Se algo falhar, sabe-o em minutos, não em semanas. A CI apanha conflitos e bugs cedo, enquanto são pequenos e baratos de corrigir, em vez de os deixar acumular.

Código-fonte mostrado num ecrã
Cada push de Git dispara o pipeline: constrói o código e corre os testes automaticamente antes de algo ser enviado.

CD: entrega e implementação contínuas

A segunda metade é onde a alteração é de facto enviada. A entrega contínua significa que toda a alteração que passa nos testes fica automaticamente preparada para lançamento, por isso implementar é um único clique sempre que quiser. A implementação contínua vai um passo além: toda a alteração que passa é lançada em produção automaticamente, sem qualquer controlo manual. A mesma sigla "CD", uma diferença importante — se uma pessoa carrega ou não no botão.

Como funciona um pipeline

Um pipeline de CI/CD é uma série de etapas automatizadas, disparadas por uma alteração no código:

  • Origem — um push para o repositório Git inicia o pipeline.
  • Construção — o código é compilado e empacotado, muitas vezes num contentor.
  • Teste — os testes automatizados correm; uma falha pára o pipeline.
  • Implementação — se tudo passar, a aplicação é lançada num servidor, muitas vezes por SSH para um VPS ou servidor cloud.

As ferramentas habituais

Não constrói isto de raiz. O GitHub Actions e o GitLab CI/CD são populares porque vivem ao lado do seu código; o Jenkins é uma opção self-hosted bem estabelecida; e serviços como o CircleCI e outros desempenham o mesmo papel. Todos fazem o mesmo trabalho: vigiar o repositório, correr as etapas que definir num ficheiro de configuração e dar retorno. Descreve o pipeline uma vez, num ficheiro no seu repositório, e ele corre a cada alteração.

Porque é que as equipas usam

A recompensa é rapidez e segurança, que costumam trocar-se uma pela outra mas aqui não. A automação remove as etapas de lançamento lentas e manuais e os erros humanos que as acompanham. Os bugs são apanhados cedo pela etapa de teste. Os lançamentos tornam-se pequenos, frequentes e rotineiros em vez de raros e arriscados. E como todo o processo está definido em código, é consistente e repetível — igual todas as vezes, para cada programador.

Os compromissos honestos

O CI/CD não é gratuito. Montar um bom pipeline dá trabalho, e só é tão bom quanto os seus testes — automatizar a implementação de código não testado só envia bugs mais depressa. Há uma curva de aprendizagem, e projetos pequenos ou a solo podem não precisar de toda a maquinaria. Mas para qualquer equipa que lança com regularidade, o tempo poupado e os bugs evitados compensam rapidamente, e é por isso que é hoje a forma padrão de construir software profissional.

Perguntas frequentes

O que significa CI/CD?

CI significa integração contínua (Continuous Integration) — fundir e testar alterações de código automaticamente e com frequência. CD significa entrega contínua (Continuous Delivery) ou implementação contínua (Continuous Deployment) — preparar ou lançar essas alterações testadas automaticamente. Juntas, CI/CD descrevem um pipeline automatizado que leva uma alteração de código do commit até uma aplicação testada e implementada.

Qual é a diferença entre entrega contínua e implementação contínua?

Ambas automatizam o processo de lançamento, e ambas usam "CD". Na entrega contínua, toda a alteração que passa fica pronta para ser lançada, mas é uma pessoa que decide quando a coloca ao vivo. Na implementação contínua, toda a alteração que passa é lançada em produção automaticamente, sem passo manual. A diferença é se uma pessoa carrega no botão final.

O que é um pipeline de CI/CD?

Um pipeline de CI/CD é uma sequência automatizada de etapas — tipicamente origem, construção, teste e implementação — que corre sempre que o código muda. Um push para o repositório dispara-o: o código é construído, os testes correm e, se tudo passar, a aplicação é implementada. Define as etapas num ficheiro de configuração guardado no seu repositório.

Preciso de CI/CD para um projeto pequeno?

Nem sempre. Um projeto a solo ou muito pequeno pode não precisar de um pipeline completo, e montá-lo dá trabalho. Mas mesmo uma etapa simples de CI que corra os seus testes a cada push apanha bugs cedo e costuma valer a pena. Quanto maior e mais frequentemente lançado for o projeto, mais o CI/CD se paga a si próprio.

Guia independente, mantido pela comunidade. coldwa.st é um site de recursos de programação; este artigo é um texto explicativo novo e original sobre o CI/CD. Os nomes das ferramentas refletem plataformas amplamente usadas; consulte a documentação de cada ferramenta para detalhes específicos.
Recomendado

Um servidor onde implementar o seu pipeline

Um pipeline de CI/CD precisa de algures onde implementar. Um VPS ou servidor cloud dá-lhe controlo total para correr os seus artefactos de construção, contentores ou apps como etapa final do pipeline. A Infomaniak — um fornecedor suíço respeitador da privacidade — oferece VPS e servidores cloud onde pode implementar automaticamente.

Ver Infomaniak Cloud →

Link de afiliado — ajuda a suportar estes guias gratuitos.

Explore outras explicações claras no nosso índice de guias.