• Like
  • Save
Integração Contínua com Hudson
Upcoming SlideShare
Loading in...5
×
 

Integração Contínua com Hudson

on

  • 1,959 views

O que é integração continua, como a abordar em projectos "entrerprise" e como a implementar com o Hudson.

O que é integração continua, como a abordar em projectos "entrerprise" e como a implementar com o Hudson.

Statistics

Views

Total Views
1,959
Views on SlideShare
1,946
Embed Views
13

Actions

Likes
2
Downloads
11
Comments
0

3 Embeds 13

http://www.linkedin.com 8
http://coderwall.com 4
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • Correr testes esporadicamente vs sistematicamente\n
  • \n
  • \n
  • \n
  • Arranque\nTags\nEC2 / pxe\n
  • \n
  • \n
  • \n
  • \n
  • \n

Integração Contínua com Hudson Integração Contínua com Hudson Presentation Transcript

  • Integração Contínua com Hudson Portugal GTUG
  • Quem sou eu• Director de I&D na YUNIT• Certified Scrum Master (Actualmente Product Owner)• Trabalhou, Trabalha ou Envolvido em • Desenvolvimento Web - HTML, JS, CSS, Canvas, SVG, etc. • Java (Stack Web + JDBC) + RMI + Sistemas Distribuídos > J2EE • Ruby / Ruby on Rails • Visualização: Processing / Java2D / JOGL • Computação Física: Arduino / Luzes / Cenas, Man 2
  • Integração Contínua• 1 das 12 práticas do Extreme Programming• Periodicamente* pegar na ultima versão do código no controlo de versões e validar** • Periodicamente: • Diariamente, “Horariamente”, ou, melhor ainda, por triggers no Controlo de Versões • Validar: • Dependendo do tipo de projecto: validar ficheiros de configuração, compilar código, executar testes 3
  • Integração Contínua• Sincronização da equipa • Forma Simples e Eficaz™ de garantir que alterações individuais não invalidam o conjunto• Testes• Divida Técnica • Michael Feathers, Working Effectively with Legacy Code 4
  • Como começar ?• Num novo projecto • Assim que houver um mecanismo de build• Num projecto já existente: • Garantir que o código compila • Garantir que o código é empacotado • Correr testes • Acrescentar outras validações • Aplicar STFUDD o mais possível !! 5
  • Hudson/Jenkins• Servidor de Integração Contínua• Trabalha à base de projectos/jobs• Extensível com plugins• Distribuído• Desenvolvimento muito activo• Apelativo / Fácil de usar (Destronou o Cruise Control por estas razões) 6
  • Projectos• Trigger • Baseado em Tempo (=crontab), via Polling ou VCS Hook• Setup • Pull do controlo de versões, fetch de artefactos, scripts de inicialização• Build • Script, Ant, Maven, Rake (em vários passos)• Post-Build • Notificações, relatórios, publicação de artefactos, plugins 7
  • Builds Distribuídos• Os slaves podem ser arrancados de várias formas (serviço windows, java webstart, ssh, script local) ou podem ser VMs em máquinas remotas.• Cada nó pode ser marcado com etiquetas (db, mac, linux, app, ...)• Podem-se lançar slaves em serviços como o EC2• Podem-se criar slaves por pxeboot (pen USB) 8
  • Projectos com Dependências• Um projecto pode ser configurado para publicar artefactos para uso por outros. Neste caso, também se despoletam builds dos segundos projectos• Exemplos: • Geração de JARs com bibliotecas de integração / código comum 9
  • Aplicações Enterprisey• Pode ser preciso colocar código num container para o poder testar, eg, EJBs, web apps• Nestas situações pode ser preciso usar uma base de dados dedicada, um container num ambiente dedicado, etc.• Os projectos têm de passar a: • Compilar código, limpar e popular BD, limpar container, lançar código, correr testes, [lavar a louça...] • STFUDD é muito importante aqui: Mais vale um sistema complicado e lento a funcionar do que um perfeito em lado nenhum 10
  • Uso como Crontab• O Hudson também pode ser usado como crontab.• Tem as vantagens: • Gestão fácil • Contenção de carga • Garantia de serialização de tarefas 11
  • Notificações / Output• As notificações dos resultados dos builds podem ser dadas por: • IRC • XMPP • Mail• A melhor solução consiste num radiador de informação bem visível: • Plugin “Radiator View” • Luzes / Sirenes 12
  • Hudson• Obrigado,• Querem ver as luzes ?• Q&A 13