Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

52
GoCD + Docker + Docker Compose : uma história de amor Stefan Teixeira @stefan_teixeira [email protected] stefanteixeira.com.br stefanteixeira.com

Transcript of Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Page 1: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker 🐳 + Docker Compose 🐙: uma história de

amor ❤

Stefan Teixeira @stefan_teixeira

[email protected] stefanteixeira.com.br

stefanteixeira.com

Page 2: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

• QA Engineer @ M4U • Entusiasta de Automação de Testes, Agile Testing e DevOps • Blogs técnicos: stefanteixeira.com.br (pt-br) /

stefanteixeira.com (en)

Contatos: • E-mail: [email protected] • Twitter: twitter.com/stefan_teixeira • Facebook: facebook.com/stefan.teixeira • LinkedIn: linkedin.com/in/stefanteixeira • GitHub: github.com/stefanteixeira • SlideShare: slideshare.net/stefanteixeira

Sobre

Page 3: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

O que é GoCD?

Page 4: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Antes do GoCD

Page 5: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Depois do GoCD

Page 6: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor
Page 7: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD

• Criado pela ThoughtWorks

https://www.go.cd/ | https://github.com/gocd/gocd

Page 8: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD

• Criado pela ThoughtWorks

• Open-source (desde Fev/2014)

https://www.go.cd/ | https://github.com/gocd/gocd

Page 9: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD

• Criado pela ThoughtWorks

• Open-source (desde Fev/2014)

• Foco em Continuous Delivery

https://www.go.cd/ | https://github.com/gocd/gocd

Page 10: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Por que GoCD?

Page 11: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

O poder das abstrações certas

Page 12: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Pipelines são first-class citizens

Page 13: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Como funciona?

Page 14: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Documentação

https://docs.go.cd/current/

Page 15: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

API Reference

https://api.go.cd/current/

Page 16: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Plugins

https://www.go.cd/community/plugins.html

Page 17: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Mas o Jenkins não faz isso tudo?

Page 18: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Faz, mas…

Page 19: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD x Jenkins

Page 20: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD x Jenkins

Page 21: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Build Pipeline Plugin

Page 22: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Build Pipeline Plugin

💩

Page 23: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Build Flow Plugin

Page 24: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Build Flow Plugin

É bom, mas não suporta steps manuais… 😞

Page 25: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Pipeline Plugin (antigo Workflow)

• TUDO em Job DSL (Groovy) 👍

Page 26: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Pipeline Plugin (antigo Workflow)

• TUDO em Job DSL (Groovy) 👍

• Foco em Continuous Delivery 👍

Page 27: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Pipeline Plugin (antigo Workflow)

• TUDO em Job DSL (Groovy) 👍

• Foco em Continuous Delivery 👍

• Visualização decente só na versão paga 💩

Page 28: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

https://www.thoughtworks.com/pt/radar/tools/jenkins-as-a-deployment-pipeline

Page 29: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker

Page 30: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Imagens do GoCD no DockerHub

https://hub.docker.com/r/gocd/gocd-server/ | https://hub.docker.com/r/gocd/gocd-agent/

Page 31: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Customizando imagens

https://github.com/gocd/gocd-docker

Page 32: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker Compose

Page 33: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker Compose (v2)

Page 34: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker Compose

• Volumes: 2 opções possíveis

Page 35: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker Compose

• Volumes: 2 opções possíveis

➡ Mapeamento com host

Page 36: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker Compose

• Volumes: 2 opções possíveis

➡ Mapeamento com host (mais simples, menos portável)

Page 37: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker Compose

• Volumes: 2 opções possíveis

➡ Mapeamento com host (mais simples, menos portável)

➡ Data container

Page 38: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker Compose

• Volumes: 2 opções possíveis

➡ Mapeamento com host (mais simples, menos portável)

➡ Data container (menos simples, porém mais recomendado)

Page 39: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

E se eu quiser 3 agents?

Page 40: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

E se eu quiser 3 agents?

👏👏👏👏👏

Page 41: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

E pra rodar Docker dentro do GoCD?

Page 42: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor
Page 43: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor
Page 44: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

OBS: Dependendo do OS, binding de algumas

libs serão necessárias!

Page 45: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Outros Projetos

Page 46: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

GoCD Monitor

https://github.com/karmats/gocd-monitor

Page 47: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Build Window

https://github.com/rouanw/build-window

Page 48: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

CI Remote

http://timoa.com/projects/ci-remote-for-go-server

Page 49: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

"Quero ver se o GoCD é isso tudo…"

Page 50: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Demonstração

• Exemplo real de pipeline • Menu admin • Triggers manuais • Adicionando um novo pipeline • Verificando value stream map • Resources

Page 51: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Referências

• https://highops.com/insights/continuous-delivery-pipelines-gocd-vs-jenkins/

• http://thoughtworks.github.io/p2/issue11/go-cd-the-right-tool-for-he-job/

• PS: Outras referências estão nos slides, na parte de baixo 😃

Page 52: Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história de amor

Obrigado!

Stefan Teixeira @stefan_teixeira

[email protected] stefanteixeira.com.br

stefanteixeira.com