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

Post on 16-Apr-2017

1.095 views 3 download

Transcript of 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

stefanfk@gmail.com stefanteixeira.com.br

stefanteixeira.com

• 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: stefanfk@gmail.com • Twitter: twitter.com/stefan_teixeira • Facebook: facebook.com/stefan.teixeira • LinkedIn: linkedin.com/in/stefanteixeira • GitHub: github.com/stefanteixeira • SlideShare: slideshare.net/stefanteixeira

Sobre

O que é GoCD?

Antes do GoCD

Depois do GoCD

GoCD

• Criado pela ThoughtWorks

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

GoCD

• Criado pela ThoughtWorks

• Open-source (desde Fev/2014)

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

GoCD

• Criado pela ThoughtWorks

• Open-source (desde Fev/2014)

• Foco em Continuous Delivery

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

Por que GoCD?

O poder das abstrações certas

Pipelines são first-class citizens

Como funciona?

Documentação

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

API Reference

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

Plugins

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

Mas o Jenkins não faz isso tudo?

Faz, mas…

GoCD x Jenkins

GoCD x Jenkins

Build Pipeline Plugin

Build Pipeline Plugin

💩

Build Flow Plugin

Build Flow Plugin

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

Pipeline Plugin (antigo Workflow)

• TUDO em Job DSL (Groovy) 👍

Pipeline Plugin (antigo Workflow)

• TUDO em Job DSL (Groovy) 👍

• Foco em Continuous Delivery 👍

Pipeline Plugin (antigo Workflow)

• TUDO em Job DSL (Groovy) 👍

• Foco em Continuous Delivery 👍

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

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

GoCD + Docker

Imagens do GoCD no DockerHub

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

Customizando imagens

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

GoCD + Docker Compose

GoCD + Docker Compose (v2)

GoCD + Docker Compose

• Volumes: 2 opções possíveis

GoCD + Docker Compose

• Volumes: 2 opções possíveis

➡ Mapeamento com host

GoCD + Docker Compose

• Volumes: 2 opções possíveis

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

GoCD + Docker Compose

• Volumes: 2 opções possíveis

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

➡ Data container

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)

E se eu quiser 3 agents?

E se eu quiser 3 agents?

👏👏👏👏👏

E pra rodar Docker dentro do GoCD?

OBS: Dependendo do OS, binding de algumas

libs serão necessárias!

Outros Projetos

GoCD Monitor

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

Build Window

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

CI Remote

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

"Quero ver se o GoCD é isso tudo…"

Demonstração

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

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 😃

Obrigado!

Stefan Teixeira @stefan_teixeira

stefanfk@gmail.com stefanteixeira.com.br

stefanteixeira.com