Conceito de Integração Contínua

Introdução

O processo de integração contínua tem como principal objetivo garantir que cada atualização do código-fonte não gere regressões e/ou anomalias em um aplicativo em desenvolvimento.
Historicamente, a integração contínua tem sido utilizada pela IBM para desenvolver o OS/360 desde os anos 60.
A integração contínua não é uma ferramenta, mas sim uma prática resultante do "eXtreme Programming (XP)".
Os desenvolvedores de um mesmo aplicativo reintegram o programa em que eles trabalham o mais frequentemente possível. Trata-se de desencadear, à cada integração, um processo que se baseia em uma plataforma que verifica, automaticamente, o funcionamento do aplicativo para que as anomalias sejam detectadas quando entradas.
O mais difícil para um desenvolvedor é refletir sobre o real impacto de uma atualização fundamental em todas as funcionalidades da aplicação. A integração contínua pode dar ao desenvolvedor a visão mais geral sobre a aplicação, uma vez que os testes da aplicação são feitos em um ambiente clone de produção.

Palavras-chave

  • Build: É o conjunto de passos necessários para compilar, criar entregas na execução dos testes (funcional, unitários, IHM, etc.)
  • Commit: É a operação que permitirá a validação das atualizações do código-fonte no diretório local de trabalho da máquina do desenvolvedor, através da ferramenta de gerenciamento de configuração (como SVN). O commit é feito do diretório local de trabalho para o repositório da ferramenta de gerenciamento de configuração.
  • Update: Esta operação permite a atualização a partir do repositório da ferramenta de gerenciamento de configuração do diretório local.
  • Checkout: É a operação de extração de uma versão de um projeto em desenvolvimento do repositório do gerenciador de configuração em um diretório local de trabalho.

Cenário geral

  • O desenvolvedor faz o seu commit no repositório do gerenciador de configuração.
  • O servidor de integração contínua detecta o commit, faz um Checkout lança as operações de compilação e de testes
  • Em caso de falha uma notificação é gerada para o gerente de projeto e/ou para a equipe de desenvolvimento.
  • O desenvolvedor envolvido pelo erro é faz uma atualização do repositório de gerenciamento de configuração e corrige a anomalia.

Características gerais de um servidor de integração contínua

Um servidor de integração contínua deve permitir, principalmente:

  • De realizar operações de Checkout do gerenciador de configuração.
  • A compilação do código-fonte
  • A criação do arquivo de aplicação (Ear, Jar, War, ...)
  • A implantação do arquivo na máquina de teste.
  • A execução de um conjunto de testes: Junit, Cactus, Auditoria do código-fonte, teste de IHC, testes funcionais
  • A notificação do resultado: e-mail, RSS.
  • A criação do relatório de estatísticas.
  • A integração com outras ferramentas

Os servidores da integração mais conhecidos

  • Cruise Control : open source e gratuito, muito conhecido, bem documentado, testa as aplicações J2EE e as aplicações em .Net. É a referência da integração contínua.
  • Hudson : open source e gratuito, tornou-se bastante popular, mais recente que o Cruise Control, testa aplicações J2EE. Utilizado pela SUN
  • Continuum : open source e gratuito, suportado pela fundação Apache
  • Bamboo : open source e pago

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.
Este documento, intitulado 'Conceito de Integração Contínua', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.

Assine nossa newsletter!

Assine nossa newsletter!
Junte-se à comunidade