Integração contínua Maior controle do projeto e maior produtividade
Integração contínua
Maior controle do projeto e maior produtividade
Integração Contínua
“Uma prática de desenvolvimento de softwareonde os membros de uma equipe integram seutrabalho frequentemente, normalmente ao menosuma vez ao dia para cada pessoa - levando amúltiplas integrações diárias...”
Martin Fowler
O que é Integração Contínua (IC)?
Definição:• Um repositório central para todos os membros da
equipe, contendo:o o último código;o o último executável.
• Um processo automatizado para "building" e testar todos os processos ativos, que:o possa ser rodado várias vezes ao dia;o seja auto-suficiente.
Kevin A. Lee, Technical Consultant, IBM
O que é Integração Contínua (IC)?
Estilo de integração contínua
• Síncrona: feita por um programador depois de algumas horas de desenvolvimento.
• Assíncrona: é utilizado uma ferramenta específica que verifica as últimas atualizações e faz um build completo do sistema.
Vantagens
• O esforço para integrarmos o código é menor;• O potencial de erros diminui e eventuais erros
podem ser tratados mais facilmente;• Economia de tempo em relação aos esforços na
procura de defeitos;• Gerar software funcionando a qualquer momento;• Melhora o trabalho em equipe.
Porém...
Integração Contínua não elimina os bugs, mas torna as tarefas de localizá-los mais fácil e mais rápido.
Ferramentas para IC
Ferramentas para IC: AnthillPro
• Suporte a múltiplos projetos;• Agendamento de projetos;• Permite iniciar execução de um projeto
manualmente;• Configuração do sistema via interface Web;• Completa informação sobre os projetos: javadoc,
resultados de testes, métricas etc;• Suporte a CVS, Performace, PVCS, VSS,
StartTeam, MKS;• Envio de resultados via e-mail;
Ferramentas para IC: Apache Continuum
• Fácil instalação;• Suporta cinco sistemas de controle de versão:
Subversion, CVS, StarTeam, Bazaar e Perforce;• Fácil configuração através de uma interface web;• Desenvolvido em java;• Suporte nativo a ANT, Maven 1 e 2 e Shell Script
para outras linguagens;• Notificação de build: Mail, Jabber e Google Talk,
MSN, IRC, relatório de desenvolvimento com wagon;
Ferramentas para IC: CruiseControl
• Gerenciador de builds de código aberto e gratuito;• Integra-se a vários sistemas de gerenciamento de
configuração (CVS, PVCS, Subversion, ClearCase, ...);
• Funciona com qualquer ferramenta de build que produza um resultado tratável (Ant Maven);
• Independência de plataforma;• Bem documentado;
Ferramentas para IC: CruiseControl
• Como funciona?o Desenvolvedor publica seu trabalho no controle de
código-fonte (CVS, SVN)o CruiseControl verifica periodicamente o controle de
código-fonte; o Se o CruiseControl detecta alguma mudança:
Dispara um build;Captura logs e artefatos do build;Publica os resultados.
Ferramentas para IC: CruiseControl
• É composto por dois módulos:o Execução do build;o Repositório dos resultados;
• Do que precisamos?o Servidor de builds;o Servidor de controle de código;o Processo bem definido;o Ferramentas (CruiseControl, Ant etc);o Responsabilidades do servidor:
Atualizar o repositório frequentemente;O código deve ser compilável;O código deve ter testes unitários;
...
Referências• http://www.ibm.com/developerworks/rational/library/sep05/lee/• http://www.martinfowler.com/articles/continuousIntegration.html• http://unibrain.com.br/recursos/artigos/integracao-continua/• http://www.slideshare.net/luthiano/integrao-contnua-com-cruisecontrol• http://www.visaoagil.com/• http://www.improveit.com.br/xp/praticas/integracao
Obrigada!
Elizandra Amarantehttp://[email protected]
Lucimara Benignohttp://lucimarabenigno.wordpress.com/