Integração contínua Maior controle do projeto e maior produtividade
Integração Contínua “ Uma prática de desenvolvimento de software onde os membros de uma equipe integram seu trabalho frequentemente, normalmente ao menos uma vez ao dia para cada pessoa - levando a mú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 último código; o último executável. Um processo automatizado para "building" e testar todos os processos ativos, que: possa ser rodado várias vezes ao dia; 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? Desenvolvedor publica seu trabalho no controle de código-fonte (CVS, SVN) CruiseControl verifica periodicamente o controle de código-fonte;  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: Execução do build; Repositório dos resultados; Do que precisamos? Servidor de builds; Servidor de controle de código; Processo bem definido; Ferramentas (CruiseControl, Ant etc); 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 Amarante http://zylle.blogspot.com [email_address] Lucimara Benigno http://lucimarabenigno.wordpress.com/ [email_address]

Integração Contínua

  • 1.
    Integração contínua Maiorcontrole do projeto e maior produtividade
  • 2.
    Integração Contínua “Uma prática de desenvolvimento de software onde os membros de uma equipe integram seu trabalho frequentemente, normalmente ao menos uma vez ao dia para cada pessoa - levando a múltiplas integrações diárias...” Martin Fowler
  • 3.
    O que éIntegração Contínua (IC)? Definição: Um repositório central para todos os membros da equipe, contendo: o último código; o último executável. Um processo automatizado para "building" e testar todos os processos ativos, que: possa ser rodado várias vezes ao dia; seja auto-suficiente. Kevin A. Lee , Technical Consultant, IBM
  • 4.
    O que éIntegração Contínua (IC)?
  • 5.
    Estilo de integraçãocontí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.
  • 6.
    Vantagens O esforçopara 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.
  • 7.
    Porém... Integração Contínuanão elimina os bugs, mas torna as tarefas de localizá-los mais fácil e mais rápido.
  • 8.
  • 9.
    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;
  • 10.
    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;
  • 11.
    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;
  • 12.
    Ferramentas para IC:CruiseControl Como funciona? Desenvolvedor publica seu trabalho no controle de código-fonte (CVS, SVN) CruiseControl verifica periodicamente o controle de código-fonte; Se o CruiseControl detecta alguma mudança: Dispara um build; Captura logs e artefatos do build; Publica os resultados.
  • 13.
    Ferramentas para IC:CruiseControl É composto por dois módulos: Execução do build; Repositório dos resultados; Do que precisamos? Servidor de builds; Servidor de controle de código; Processo bem definido; Ferramentas (CruiseControl, Ant etc); Responsabilidades do servidor: Atualizar o repositório frequentemente; O código deve ser compilável; O código deve ter testes unitários; ...
  • 14.
    Referências http://www.ibm.com/developerworks/rational/library/sep05/lee/ http://www.martinfowler.com/articles/continuousIntegration.htmlhttp://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
  • 15.
    Obrigada! Elizandra Amarantehttp://zylle.blogspot.com [email_address] Lucimara Benigno http://lucimarabenigno.wordpress.com/ [email_address]