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
![Page 1: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/1.jpg)
Integração ContínuaTeoria, Prática e PHP
Anderson Casimiro - @duodracoTechnical Evangelist
![Page 2: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/2.jpg)
AgendaAgendaTeoria
Prática
PHP
![Page 3: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/3.jpg)
Princípios ÁgeisPrincípios Ágeis
![Page 4: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/4.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/5.jpg)
......
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](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/6.jpg)
QualidadeQualidade
![Page 7: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/7.jpg)
QualidadeQualidadeControle e GarantiaControle e Garantia
ProcessoProcesso
MétricaMétrica
AvaliaçãoAvaliação
![Page 8: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/8.jpg)
ProcessoProcesso
![Page 9: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/9.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/10.jpg)
MétricasMétricas
![Page 11: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/11.jpg)
““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](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/12.jpg)
AvaliaçãoAvaliação
![Page 13: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/13.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/14.jpg)
Integração Contínua!Integração Contínua!
![Page 15: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/15.jpg)
““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](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/16.jpg)
Um exemploO projeto é montar uma torre de lego, com o meio azul, e 2 “legos” de largura
![Page 17: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/17.jpg)
Os desenvolvedores se amontoam em torno do código e já começam a trabalhar...
![Page 18: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/18.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/19.jpg)
Vamos tentar novamenteNosso processo será desenvolver a base, o meio azul e a cobertura...
![Page 20: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/20.jpg)
Temos a base? Sim!Todos estão sabendo? Sim!Ok para a próxima fase? Sim!
![Page 21: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/21.jpg)
Temos o meio? Não!Não podemos continuar.Como reparamos esse passo?
![Page 22: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/22.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/23.jpg)
Cobertura entregue? Sim!Terminamos o projeto? Sim!Todos estão sabendo? Sim! Build Success!Build Success!
![Page 24: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/24.jpg)
Ferramentas...Ferramentas...
![Page 25: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/25.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/26.jpg)
Mas e as ferramentas???Mas e as ferramentas???
![Page 27: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/27.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/28.jpg)
Vamos à prática...Vamos à prática...
![Page 29: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/29.jpg)
E o PHP?E o PHP?
![Page 30: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/30.jpg)
PHPUnit
CodeSniffer
PHPLOC
PHP_Depend
PHPCPD
PHP_DCDBehat
PHPMD Mink
Phing
![Page 31: Integração Contínua](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/31.jpg)
門前 の 小僧 習わぬ経 を 読む門前 の 小僧 習わぬ経 を 読む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](https://reader034.vdocument.in/reader034/viewer/2022052619/555a010ed8b42aa8098b4e89/html5/thumbnails/32.jpg)
Develop with Pleasure!Anderson Casimiro - @duodracoTechnical Evangelist