integração contínua

32
Integração Contínua Teoria, Prática e PHP Anderson Casimiro - @duodraco Technical Evangelist

Upload: anderson-casimiro

Post on 18-May-2015

142 views

Category:

Technology


0 download

DESCRIPTION

O que é Integração Contínua, como surgiu, quais os princípios que a definem. Princípios Ágeis, Gerência de Qualidade, Ferramentas. Como uma plataforma de desenvolvimento, qualquer que seja, pode tirar proveito disso? Como um exemplo, usamos o PHP para mostrar ferramentas para auxilio nas métricas e avaliações de qualidade. Apresentação realizada no TDC 2014 São Paulo, trilha DevOps

TRANSCRIPT

Page 1: Integração Contínua

Integração ContínuaTeoria, Prática e PHP

Anderson Casimiro - @duodracoTechnical Evangelist

Page 2: Integração Contínua

AgendaAgendaTeoria

Prática

PHP

Page 3: Integração Contínua

Princípios ÁgeisPrincípios Ágeis

Page 4: Integração Contínua

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Page 5: Integração Contínua

......

Working software is the primary measure of progress.Working software is the primary measure of progress.

Agile processes promote sustainable development. Agile processes promote sustainable development. The sponsors, developers, and users should be able The sponsors, developers, and users should be able

to maintain a constant pace indefinitely.to maintain a constant pace indefinitely.

Continuous attention to technical excellence Continuous attention to technical excellence and good design enhances agility.and good design enhances agility.

......

Page 6: Integração Contínua

QualidadeQualidade

Page 7: Integração Contínua

QualidadeQualidadeControle e GarantiaControle e Garantia

ProcessoProcesso

MétricaMétrica

AvaliaçãoAvaliação

Page 8: Integração Contínua

ProcessoProcesso

Page 9: Integração Contínua

ProcessoProcesso““Dividir o processo em passos bem Dividir o processo em passos bem

definidos nos dá pontos de controle; definidos nos dá pontos de controle; os quais devem ser avaliados e os quais devem ser avaliados e

evoluir independentes.“evoluir independentes.“

Page 10: Integração Contínua

MétricasMétricas

Page 11: Integração Contínua

““Métricas sensatas para cada ponto do processo são a chave Métricas sensatas para cada ponto do processo são a chave para a evolução e detecção de falhas“para a evolução e detecção de falhas“

MétricasMétricas

Page 12: Integração Contínua

AvaliaçãoAvaliação

Page 13: Integração Contínua

AvaliaçãoAvaliação““Com a avaliação contínua em cada passo do processo, com Com a avaliação contínua em cada passo do processo, com boa métrica, levam a um produto de qualidade”boa métrica, levam a um produto de qualidade”

Page 14: Integração Contínua

Integração Contínua!Integração Contínua!

Page 15: Integração Contínua

““Integração Contínua é uma prática de desenvolvimento de Integração Contínua é uma prática de desenvolvimento de software onde os membros de um time integram seu software onde os membros de um time integram seu

trabalho frequentemente (...). Cada integração é verificada trabalho frequentemente (...). Cada integração é verificada por um build automatizado (incluindo testes) para detectar por um build automatizado (incluindo testes) para detectar

erros de integração o mais rápido possível. (…) essa erros de integração o mais rápido possível. (…) essa abordagem leva a uma significante redução nos problemas abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software de integração e permite que um time desenvolva software

coeso mais rapidamente.”coeso mais rapidamente.”

Martin Fowler

Page 16: Integração Contínua

Um exemploO projeto é montar uma torre de lego, com o meio azul, e 2 “legos” de largura

Page 17: Integração Contínua

Os desenvolvedores se amontoam em torno do código e já começam a trabalhar...

Page 18: Integração Contínua

Todos correram para juntar as peças sem nem ver se seria possível … o resultado não podia ser diferente...Build Failed!Build Failed!

Page 19: Integração Contínua

Vamos tentar novamenteNosso processo será desenvolver a base, o meio azul e a cobertura...

Page 20: Integração Contínua

Temos a base? Sim!Todos estão sabendo? Sim!Ok para a próxima fase? Sim!

Page 21: Integração Contínua

Temos o meio? Não!Não podemos continuar.Como reparamos esse passo?

Page 22: Integração Contínua

Fizemos um fix criando mais um bloco e integrando-0 ao processo.

Meio Ok? Sim!Todos estão sabendo? Sim!Podemos continuar? Sim!

Page 23: Integração Contínua

Cobertura entregue? Sim!Terminamos o projeto? Sim!Todos estão sabendo? Sim! Build Success!Build Success!

Page 24: Integração Contínua

Ferramentas...Ferramentas...

Page 25: Integração Contínua

Ferramentas...Ferramentas...““Sem processo, métricas e avaliação definidos não adianta Sem processo, métricas e avaliação definidos não adianta

tentar uma ferramenta“tentar uma ferramenta“

Page 26: Integração Contínua

Mas e as ferramentas???Mas e as ferramentas???

Page 27: Integração Contínua

TeamCityTeamCity Technology AwarenessKey Integrations

Continuous IntegrationConfiguration

Build InfrastructureBuild History

Code Quality TrackingVCS Interoperability

Extensibility and CustomizationSystem Maintenance

User Management

Page 28: Integração Contínua

Vamos à prática...Vamos à prática...

Page 29: Integração Contínua

E o PHP?E o PHP?

Page 30: Integração Contínua

PHPUnit

CodeSniffer

PHPLOC

PHP_Depend

PHPCPD

PHP_DCDBehat

PHPMD Mink

Phing

Page 31: Integração Contínua

門前 の 小僧 習わぬ経 を 読む門前 の 小僧 習わぬ経 を 読むMon zen no kozō narawanu kyō wo yomuMon zen no kozō narawanu kyō wo yomu

“Um jovem que mora perto ao templo sabe as “Um jovem que mora perto ao templo sabe as escrituras sem as ter lido”escrituras sem as ter lido”

Page 32: Integração Contínua

Develop with Pleasure!Anderson Casimiro - @duodracoTechnical Evangelist