Integração Contínua<br />Giovanni Bassi<br />Consultor Independente | MVP | ScrumDeveloperTrainer | ScrumTrainer<br />gigg...
Online @<br /><ul><li>Giovanni BassiEmail: 		giggio@giggio.netBlog:		unplugged.giggio.netConsultoria:	giovannibassi.comScr...
.Net ArchitectsGrupo:		www.dotnetarchitects.netPodcast:		podcast.dotnetarchitects.netOnline: 		tinyurl.com/DotNetArchDojo:...
Agenda<br />
Dev 1<br />Dev 2<br />Trunk (ou mainline)<br />
Dev 1<br />Dev 2<br />Trunk (ou mainline)<br />
Dev 1<br />Dev 2<br />Trunk (ou mainline)<br />
Dev 1<br />Dev 2<br />Trunk (ou mainline)<br />
Dev 1<br />Dev 2<br />Trunk (ou mainline)<br />
Dev 1<br />Dev 2<br />1,2<br />3<br />1<br />2<br />1, 2, 3<br />Build Machine<br />1, 2, 3<br />3, 4, 5<br />Dev 3<br />D...
Dev 1<br />Dev 2<br />Trunk (ou mainline)<br />
Fluxo de trabalho<br />
É uma prática, não uma ferramenta<br />
Algumas práticas<br />
Repositório único de código<br />
Build automatizada<br />
Frequência dos commits<br />
Cada commit gera uma build... ou não?<br />
O commit só termina quando o build é aceito<br />Outro dev<br />
Pending Head<br />DelayedCommit<br />GatedCheckin<br />
Build Manual?<br />
Máquina de build<br />
Build deve ser rápida<br />
Use testes de fumaça<br />
Build de 2 estágios<br />
Teste em ambiente equivalente ao de produção<br />
Acesso fácil ao resultado da build<br />
Informações devem irradiar<br />
Colocando em produção<br />
Vai ter permitir ser mais ágil ...<br />
... e ter mais qualidade<br />
Demo<br />
Obrigado!<br />
Próximos SlideShares
Carregando em…5
×

Integração Contínua

1.823 visualizações

Publicada em

Palestra apresentada no The Developers Conference 2010 (TDC2010) na trilha de Agile.

Publicada em: Tecnologia
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.823
No SlideShare
0
A partir de incorporações
0
Número de incorporações
473
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Integração no finalHá ilusão de impedir merges bloqueando alteração do mesmo arquivo fonteMerges de comportamento são também comuns
  • Atualização do trunk constante, mas integração no final
  • Integração mais frequente
  • Integração frequente
  • Integração contínua
  • Integração contínua com DCVS
  • Aliás, não precisamos de ferramentas
  • Único? E DCVS?Inclua tudoMáquina nova funciona de imediatoDiretórios de biblioteca são anti-patterns
  • ANT, NANT, MSBuild, Make, RakePartial buildsTeste a build automaticamentePartialtests
  • Diário no mínimoPor história?Por tarefa?Com DCVS o commit é local e é frequente.
  • Um build pode ser feito de múltiplos commits com DCVS
  • Pode?Pode!
  • Ambiente padronizadoPossui o básico para compilarLembre-se que no repositório único de código está tudo“Servidor de integração contínua”?
  • XP: build de dez minutos
  • Virtualização ajudaMantenha o ambiente sincronizado
  • Sistema desktop: binários em local conhecidoWeb:deploy em máquina de homologação conhecida
  • Visual Studio
  • TeamCity
  • Exemplo do Juan Lopes
  • Assim é mais fácil
  • Rollback quando necessário
  • Quality...
  • Integração Contínua

    1. 1. Integração Contínua<br />Giovanni Bassi<br />Consultor Independente | MVP | ScrumDeveloperTrainer | ScrumTrainer<br />giggio@giggio.net | unplugged.giggio.net | giovannibassi.com<br />
    2. 2.
    3. 3. Online @<br /><ul><li>Giovanni BassiEmail: giggio@giggio.netBlog: unplugged.giggio.netConsultoria: giovannibassi.comScrum Dev: scrumdev.com.brPodcast: tecnoretorica.com.brTwitter: @giovannibassi
    4. 4. .Net ArchitectsGrupo: www.dotnetarchitects.netPodcast: podcast.dotnetarchitects.netOnline: tinyurl.com/DotNetArchDojo: dojo.dotnetarchitects.netTwitter: #DotNetArchitects@NetArchitects</li></ul>3<br />
    5. 5. Agenda<br />
    6. 6. Dev 1<br />Dev 2<br />Trunk (ou mainline)<br />
    7. 7. Dev 1<br />Dev 2<br />Trunk (ou mainline)<br />
    8. 8. Dev 1<br />Dev 2<br />Trunk (ou mainline)<br />
    9. 9. Dev 1<br />Dev 2<br />Trunk (ou mainline)<br />
    10. 10. Dev 1<br />Dev 2<br />Trunk (ou mainline)<br />
    11. 11. Dev 1<br />Dev 2<br />1,2<br />3<br />1<br />2<br />1, 2, 3<br />Build Machine<br />1, 2, 3<br />3, 4, 5<br />Dev 3<br />Dev 4<br />4<br />4<br />5<br />
    12. 12. Dev 1<br />Dev 2<br />Trunk (ou mainline)<br />
    13. 13. Fluxo de trabalho<br />
    14. 14. É uma prática, não uma ferramenta<br />
    15. 15. Algumas práticas<br />
    16. 16. Repositório único de código<br />
    17. 17.
    18. 18. Build automatizada<br />
    19. 19. Frequência dos commits<br />
    20. 20. Cada commit gera uma build... ou não?<br />
    21. 21.
    22. 22. O commit só termina quando o build é aceito<br />Outro dev<br />
    23. 23. Pending Head<br />DelayedCommit<br />GatedCheckin<br />
    24. 24. Build Manual?<br />
    25. 25. Máquina de build<br />
    26. 26. Build deve ser rápida<br />
    27. 27. Use testes de fumaça<br />
    28. 28. Build de 2 estágios<br />
    29. 29. Teste em ambiente equivalente ao de produção<br />
    30. 30. Acesso fácil ao resultado da build<br />
    31. 31. Informações devem irradiar<br />
    32. 32.
    33. 33.
    34. 34. Colocando em produção<br />
    35. 35.
    36. 36.
    37. 37. Vai ter permitir ser mais ágil ...<br />
    38. 38. ... e ter mais qualidade<br />
    39. 39. Demo<br />
    40. 40. Obrigado!<br />
    41. 41. Online @<br /><ul><li>Giovanni BassiEmail: giggio@giggio.netBlog: unplugged.giggio.netConsultoria: giovannibassi.comScrum Dev: scrumdev.com.brPodcast: tecnoretorica.com.brTwitter: @giovannibassi
    42. 42. .Net ArchitectsGrupo: www.dotnetarchitects.netPodcast: podcast.dotnetarchitects.netOnline: tinyurl.com/DotNetArchDojo: dojo.dotnetarchitects.netTwitter: #DotNetArchitects@NetArchitects</li></ul>40<br />

    ×