Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Estratégias para o uso de integração e entrega contínua com gocd

315 views

Published on

Apresentação da conferência agile testers Brazília 2017

Published in: Software
  • Be the first to comment

Estratégias para o uso de integração e entrega contínua com gocd

  1. 1. Estratégias para o uso de integração e entrega contínua com gocd por Walmyr Filho Engenheiro de software @appear.in
  2. 2. https://about.me/walmyr-filho
  3. 3. ● Exercício ● Fundamentos básicos ● Problemas antes do gocd ● Experimentos ● Migrando do Jenkins para o gocd ● Comunidade ● Mão na massa ● Q&A Agenda
  4. 4. ● Quem aqui faz integração/entrega contínua? Exercício
  5. 5. ● Quem aqui faz integração/entrega contínua? ● O time todo faz commit/merge para o master branch diariamente? Exercício
  6. 6. ● Quem aqui faz integração/entrega contínua? ● O time todo faz commit/merge para o master branch diariamente? ● Cada push dispara build e testes automatizados? Exercício
  7. 7. ● Quem aqui faz integração/entrega contínua? ● O time todo faz commit/merge para o master branch diariamente? ● Cada push dispara build e testes automatizados? ● E se o build falhar, volta a passar em até 10 minutos? Exercício
  8. 8. Agile / Lean / DevOps Agile Lean DevOps
  9. 9. Integração contínua https://talkingabouttesting.com/2016/07/04/porque-integracao-continua-e-tao-importante/ Integração contínua, ou CI, é uma prática de desenvolvimento de software onde o código é continuamente integrado (ao menos uma vez por dia, por desenvolvedor), e de forma automatizada. CI também diz respeito a verificar se o novo código que você escreveu quebrou ou não o que já estava funcionando, uma vez que testes automatizados e outras tarefas automatizadas (tais como verificações de sintaxe) são executadas quando integrando o código.
  10. 10. Entrega contínua https://medium.com/the-making-of-appear-in/what-is-a-deployment-pipeline-and-how-it-helps-soft ware-development-teams-6cb29917ceea
  11. 11. ● Casos de sucesso Porquê decidimos usar o gocd?
  12. 12. ● Casos de sucesso ● Experimento para testes de mobile (iOS) Porquê decidimos usar o gocd?
  13. 13. ● Casos de sucesso ● Experimento para testes de mobile (iOS) ● Experimento para testes de interoperabilidade Porquê decidimos usar o gocd?
  14. 14. ● Casos de sucesso ● Experimento para testes de mobile (iOS) ● Experimento para testes de interoperabilidade ● Versão antiga do Jenkins e ninguém disposto a atualizá-lo Porquê decidimos usar o gocd?
  15. 15. ● Casos de sucesso ● Experimento para testes de mobile (iOS) ● Experimento para testes de interoperabilidade ● Versão antiga do Jenkins e ninguém disposto a atualizá-lo ● Dificuldades de criação de pipelines com o antigo CI Porquê decidimos usar o gocd?
  16. 16. ● Casos de sucesso ● Experimento para testes de mobile (iOS) ● Experimento para testes de interoperabilidade ● Versão antiga do Jenkins e ninguém disposto a atualizá-lo ● Dificuldades de criação de pipelines com o antigo CI ● Muitos plugins necessários no antigo CI Porquê decidimos usar o gocd?
  17. 17. ● Casos de sucesso ● Experimento para testes de mobile (iOS) ● Experimento para testes de interoperabilidade ● Versão antiga do Jenkins e ninguém disposto a atualizá-lo ● Dificuldades de criação de pipelines com o antigo CI ● Muitos plugins necessários no antigo CI ● Utilização de uma ferramenta pensada com conceitos modernos voltados a entrega contínua de software Porquê decidimos usar o gocd?
  18. 18. Experimentação - iOS testing
  19. 19. Experimentação - interoperability testing (WebRTC)
  20. 20. Experimentação - interoperability testing (WebRTC)
  21. 21. Do Jenkins para o gocd
  22. 22. ● Servidor x agentes Conceitos básicos do gocd
  23. 23. ● Servidor x agentes ● Pipelines (paralelização) Conceitos básicos do gocd
  24. 24. ● Servidor x agentes ● Pipelines (paralelização) ○ 1 ou mais stages (em sequencia) Conceitos básicos do gocd
  25. 25. ● Servidor x agentes ● Pipelines (paralelização) ○ 1 ou mais stages (em sequencia) ■ 1 ou mais jobs (paralelização) Conceitos básicos do gocd
  26. 26. Conceitos básicos do gocd ● Servidor x agentes ● Pipelines (paralelização) ○ 1 ou mais stages (em sequencia) ■ 1 ou mais jobs (paralelização) ● 1 ou mais tasks (em sequencia)
  27. 27. External storage volume Infraestrutura como código go-server go-agent e2e, node-v6 go-agent node-v6 go-agent node-v6 go-agent node-v6 go-agent node-v7
  28. 28. Agrupando pipelines - pull requests
  29. 29. Agrupando pipelines - merges to master
  30. 30. Agrupando pipelines - deployments
  31. 31. Recursos
  32. 32. Recursos
  33. 33. Recursos
  34. 34. Recursos
  35. 35. Recursos
  36. 36. Recursos
  37. 37. Variáveis de ambiente
  38. 38. Plugins
  39. 39. Plugins- GitHub OAuth Login
  40. 40. Plugins- GitHub PRs builder/status notifier
  41. 41. Plugins- GitHub PRs builder/status notifier
  42. 42. Plugins - Slack notification
  43. 43. Plugins - Slack notification
  44. 44. Plugins - YAML configuration
  45. 45. Artefatos
  46. 46. Artefatos
  47. 47. Artefatos - Protractor tests report
  48. 48. Artefatos - Screenshots on failures
  49. 49. Artefatos - Screenshots on failures
  50. 50. Artefatos - e2e performance tests
  51. 51. Artefatos - relatório de cobertura de código (server)
  52. 52. Artefatos - relatório de cobertura de código (frontend)
  53. 53. Artefatos - lighthouse reports
  54. 54. Artefatos - lighthouse reports (frontpage)
  55. 55. Artefatos - lighthouse reports (inside the room)
  56. 56. Comunidade
  57. 57. ● Agentes elasticos (instancias spot/containers) Próximos passos
  58. 58. ● Agentes elasticos (instancias spot/containers) ● Artefatos entre estágios e pipelines Próximos passos
  59. 59. ● Agentes elasticos (instancias spot/containers) ● Artefatos entre estágios e pipelines ● Contribuições de volta para a comunidade Próximos passos
  60. 60. Mão na massa
  61. 61. Q&A
  62. 62. Obrigado! https://about.me/walmyr-filho

×