Explorar a integração contínua

Concluído

A CI (integração contínua) é um dos elementos de DevOps mais fundamentais. Ela promove a colaboração, contribui para a detecção precoce de problemas de qualidade do código e beneficia o processo de desenvolvimento simplificado. Ela também serve como a base da entrega e implantação contínuas. Ao empregar as práticas de CI, a organização descrita em nosso cenário de exemplo poderá eliminar o esforço manual envolvido no build e teste de seus aplicativos, agilizando efetivamente sua entrega aos usuários. Para ajudá-lo a obter uma apreciação completa dos benefícios da CI, vamos descrevê-los nesta unidade.

O que é a integração contínua?

A integração contínua é o processo de build e teste automático de versões atualizadas do software após atualizações individuais do repositório de software. Em geral, o padrão de integração envolve desenvolvedores enviando suas alterações em branches separados por meio de pull requests. As alterações estão sujeitas a uma revisão coletiva e, supondo que seu resultado seja bem-sucedido, serão mescladas no branch principal. Eventos de commit ou mesclagem individuais podem ser usados para disparar o build e o teste de código para garantir que as alterações propostas ou resultantes não tenham efeitos adversos. Com a integração contínua em vigor, o build e os testes são totalmente automatizados.

Diagrama do fluxo de integração contínua.

Essa automação é baseada em definições de build e teste criadas por desenvolvedores e implementadas na plataforma de hospedagem do repositório. Por exemplo, o GitHub oferece para essa finalidade o fluxo de trabalho do GitHub Actions, enquanto o Azure DevOps depende do Azure Pipelines.



Quais são os benefícios da integração contínua?

Os principais benefícios associados à integração contínua baseiam-se na estratégia geral de shift-left, que (como você descobrirá mais adiante neste módulo) também influencia muitas outras práticas de DevOps. A premissa básica é que quanto mais tempo leva para detectar um problema introduzido por meio de uma alteração de código, mais caro e mais trabalhoso é corrigi-lo. Com a integração contínua, o build e o teste do código ocorrem o mais rápido possível. Eles também são implementados de maneira automatizada, o que aumenta sua velocidade e confiabilidade. A integração contínua melhora a consistência, garantindo que os builds e testes sejam realizados de maneira reproduzível. Essa consistência, por sua vez, ajuda a impor padrões de programação, resultando em um código mais limpo e fácil de manter. Por fim, mas não menos importante, a integração contínua normalmente faz parte da entrega contínua, simplificando todo o gerenciamento do ciclo de vida do aplicativo. Minimizar a sobrecarga associada à manutenção das atividades de build, teste e implantação aumenta a produtividade geral das equipes de desenvolvimento e operação, reduzindo o tempo para comercialização de produtos de software.