integração contínua
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 DevOpsTRANSCRIPT
Integração ContínuaTeoria, Prática e PHP
Anderson Casimiro - @duodracoTechnical Evangelist
AgendaAgendaTeoria
Prática
PHP
Princípios ÁgeisPrincípios Ágeis
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
......
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.
......
QualidadeQualidade
QualidadeQualidadeControle e GarantiaControle e Garantia
ProcessoProcesso
MétricaMétrica
AvaliaçãoAvaliação
ProcessoProcesso
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.“
MétricasMétricas
““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
AvaliaçãoAvaliação
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”
Integração Contínua!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
Um exemploO projeto é montar uma torre de lego, com o meio azul, e 2 “legos” de largura
Os desenvolvedores se amontoam em torno do código e já começam a trabalhar...
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!
Vamos tentar novamenteNosso processo será desenvolver a base, o meio azul e a cobertura...
Temos a base? Sim!Todos estão sabendo? Sim!Ok para a próxima fase? Sim!
Temos o meio? Não!Não podemos continuar.Como reparamos esse passo?
Fizemos um fix criando mais um bloco e integrando-0 ao processo.
Meio Ok? Sim!Todos estão sabendo? Sim!Podemos continuar? Sim!
Cobertura entregue? Sim!Terminamos o projeto? Sim!Todos estão sabendo? Sim! Build Success!Build Success!
Ferramentas...Ferramentas...
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“
Mas e as ferramentas???Mas e as ferramentas???
TeamCityTeamCity Technology AwarenessKey Integrations
Continuous IntegrationConfiguration
Build InfrastructureBuild History
Code Quality TrackingVCS Interoperability
Extensibility and CustomizationSystem Maintenance
User Management
Vamos à prática...Vamos à prática...
E o PHP?E o PHP?
PHPUnit
CodeSniffer
PHPLOC
PHP_Depend
PHPCPD
PHP_DCDBehat
PHPMD Mink
Phing
門前 の 小僧 習わぬ経 を 読む門前 の 小僧 習わぬ経 を 読む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”
Develop with Pleasure!Anderson Casimiro - @duodracoTechnical Evangelist