Integração Contínua

2,414 views
2,263 views

Published on

Material apresentado a equipe de desenvolvedores da SEFIN

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,414
On SlideShare
0
From Embeds
0
Number of Embeds
298
Actions
Shares
0
Downloads
101
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • Integração Contínua

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

    ×