Integracao Continua com CruiseControl

3,232 views
3,069 views

Published on

Apresentação realizada no Café com Tapioca de 17/05/2008.

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,232
On SlideShare
0
From Embeds
0
Number of Embeds
75
Actions
Shares
0
Downloads
1
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • Integracao Continua com CruiseControl

    1. 1. Integração Contínua com CruiseControl Luthiano Vasconcelos [email_address]
    2. 2. Objetivos <ul><li>Apresentar os conceitos fundamentais relacionados as práticas de Integração Contínua. </li></ul><ul><li>Demonstrar com o CruiseControl pode ser usado para implementar as práticas de Integração Contínua em projetos Java. </li></ul>
    3. 3. Material de Referência Integrating Agile Development in the Real World IBM Rational® ClearCase®, Ant, and CruiseControl Sorteio no final da apresentação!
    4. 4. Agenda <ul><li>Integração contínua </li></ul><ul><ul><li>O que é? </li></ul></ul><ul><ul><li>Benefícios </li></ul></ul><ul><ul><li>Fatores de sucesso </li></ul></ul><ul><li>CruiseControl </li></ul><ul><ul><li>O que é? </li></ul></ul><ul><ul><li>Como funciona? </li></ul></ul><ul><ul><li>Demonstração </li></ul></ul><ul><li>Dúvidas </li></ul>Agenda
    5. 5. Problemas no cotidiano das equipes <ul><li>Desenvolvedores e designers trabalhando no mesmo código-fonte. Qualquer um pode “quebrá-lo”! </li></ul><ul><li>Um cenário típico: </li></ul>A complexidade do build é diretamente proporcional ao tamanho do projeto!
    6. 6. O que é Integração Contínua? Compila código-fonte Prepara banco de dados Executa testes Realiza inspeções
    7. 7. Benefícios <ul><li>Elimina as longas sessões de integração. </li></ul><ul><li>O problemas de integração são detectados tão breve quanto possível. </li></ul><ul><li>Melhora o trabalho em equipe: as pessoas criam um forte sentimento de interdependência. </li></ul><ul><li>Fornece frequentemente informações importantes para o acompanhamento da qualidade do produto. </li></ul>Qualidade Produtividade
    8. 8. Fatores de sucesso <ul><li>Repositório unificado de código-fonte </li></ul><ul><li>Builds automatizados </li></ul><ul><li>Testes automatizados </li></ul><ul><li>Disciplina dos desenvolvedores </li></ul><ul><ul><li>Sincronizar freqüentemente </li></ul></ul><ul><ul><li>Não quebrar o build, ele é sagrado </li></ul></ul><ul><ul><li>Se você quebrou, conserte! </li></ul></ul>
    9. 9. O que é CruiseControl? <ul><li>É um gerenciador de builds de código-aberto e gratuito </li></ul><ul><li>Consiste de dois componentes: </li></ul><ul><ul><li>Build loop (executa como um serviço/daemon) </li></ul></ul><ul><ul><li>Status Dashboard (aplicação web) </li></ul></ul><ul><li>Integra-se a vários sistemas de gerenciamento de configuração (CVS, PVCS, Subversion, ClearCase, ...) </li></ul><ul><li>Funciona com qualquer ferramenta de build que produza um resultado tratável (Ant, Maven, ...) </li></ul>
    10. 10. O que é CruiseControl? <ul><li>Independente de plataforma (escrito em Java) </li></ul><ul><li>Facilmente extensível: </li></ul><ul><ul><li>Arquitetura baseada em plugins </li></ul></ul><ul><ul><li>Interfaces bem definidas com sistemas de controle de código-fonte e ferramentas de build </li></ul></ul><ul><li>Bem documentado: </li></ul><ul><ul><li>Material de referência abrangente </li></ul></ul><ul><ul><li>Lista de discussão bastante ativa </li></ul></ul><ul><ul><li>Vários tutoriais </li></ul></ul><ul><ul><li>Muitos livros </li></ul></ul>
    11. 11. CruiseControl
    12. 12. CruiseControl Build Status
    13. 13. Diagrama de Arquitetura
    14. 14. Como funciona? <ul><li>Desenvolvedor publica seu trabalho no controle de código-fonte (CVS, SVN, etc…) </li></ul><ul><li>CruiseControl verifica periodicamente e controle de código-fonte </li></ul><ul><li>Se CruiseControl detecta alguma mudança: </li></ul><ul><ul><li>Dispara um build </li></ul></ul><ul><ul><li>Captura logs e artefatos do build </li></ul></ul><ul><ul><ul><li>Exemplos: jar, war, javadoc, relatórios de testes unitários, de cobertura de código e métricas de qualidade </li></ul></ul></ul><ul><ul><li>Publica os resultados </li></ul></ul><ul><ul><ul><li>Exemplos: envia e-mail, acende uma luz! </li></ul></ul></ul>
    15. 15. Integração contínua para quem tem recur$o$
    16. 16. Integração contínua para quem tem recur$o$
    17. 17. Integração contínua para quem tem recur$o$
    18. 18. Integração contínua para quem tem recur$o$ http://www.hamang.net/index.php?option=com_content&task=view&id=16&Itemid=9
    19. 19. O que você ganha?
    20. 20. O que você precisa? <ul><li>Servidor de Builds </li></ul><ul><li>Servidor de Controle de Código (CVS, SVN, etc…) </li></ul><ul><li>Processo bem definido </li></ul><ul><li>Ferramentas (CruiseControl, Ant, etc...) </li></ul><ul><li>Responsabilidades do desenvolvedor </li></ul><ul><ul><li>Atualizar o repositório frequentemente. </li></ul></ul><ul><ul><li>O código deve ser compilável </li></ul></ul><ul><ul><li>O código deve ter testes unitários </li></ul></ul>
    21. 21. Resumo <ul><li>Builds Noturnos (ou Diários) é um boa prática, mas Integração Contínua é melhor! </li></ul><ul><li>Integração Contínua não elimina os bugs , porém torna a tarefa de localizá-los mais fácil e rápida. </li></ul><ul><li>CruiseControl viabiliza a Integração Contínua, porém a disciplina da equipe de desenvolvimento é a chave . </li></ul><ul><li>Automatização reduz custos, melhora a visibilidade e deixa menos espaço para erros humanos . </li></ul>
    22. 22. Dúvidas?
    23. 23. Links <ul><li>Martin Fowler explica os princípios da Integração Contínua: </li></ul><ul><ul><li>http://www.martinfowler.com/articles/continuousIntegration.html </li></ul></ul><ul><li>CruiseControl: </li></ul><ul><ul><li>http://cruisecontrol.sourceforge.net/ </li></ul></ul><ul><li>Plugin para Firefox: </li></ul><ul><ul><li>http://www.md.pp.ru/mozilla/cc/ </li></ul></ul><ul><li>Esses modestos slides: </li></ul><ul><ul><li>http://www.luthiano.com </li></ul></ul>

    ×