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

Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Embed Size (px)

Citation preview

Page 1: Meetup DevOps Carioca - 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: Meetup DevOps Carioca - 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: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

O que é GoCD?

Page 4: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Page 5: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

GoCD

• Criado pela ThoughtWorks

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

Page 6: Meetup DevOps Carioca - 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 7: Meetup DevOps Carioca - 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 8: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Por que GoCD?

Page 9: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

O poder das abstrações certas

Page 10: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Pipelines são first-class citizens

Page 11: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Como funciona?

Page 12: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Documentação

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

Page 13: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

API Reference

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

Page 14: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Plugins

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

Page 15: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

GoCD x Jenkins

Page 16: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

GoCD x Jenkins

Page 17: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Mas o Jenkins não faz isso tudo?

Page 18: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Faz, mas…

Page 19: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Build Pipeline Plugin

Page 20: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Build Pipeline Plugin

💩

Page 21: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Build Flow Plugin

Page 22: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Build Flow Plugin

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

Page 23: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Pipeline Plugin (antigo Workflow)

• TUDO em Job DSL (Groovy) 👍

Page 24: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Pipeline Plugin (antigo Workflow)

• TUDO em Job DSL (Groovy) 👍

• Foco em Continuous Delivery 👍

Page 25: Meetup DevOps Carioca - 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 26: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker

Page 27: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Quando vi o GoCD rodando

Page 28: Meetup DevOps Carioca - 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 29: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Customizando imagens

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

Page 30: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker Compose

Page 31: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker Compose

• Volumes: 2 opções possíveis

Page 32: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

GoCD + Docker Compose

• Volumes: 2 opções possíveis

➡ Mapeamento com host

Page 33: Meetup DevOps Carioca - 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 34: Meetup DevOps Carioca - 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 35: Meetup DevOps Carioca - 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 36: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

E se eu quiser 3 agents?

Page 37: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

E se eu quiser 3 agents?

👏👏👏👏👏

Page 38: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

E pra rodar Docker dentro do GoCD?

Page 39: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Page 40: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Page 41: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

OBS: Dependendo do OS, binding de algumas

libs serão necessárias!

Page 42: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Outros Projetos

Page 43: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Build Window

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

Page 44: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

CI Remote

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

Page 45: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Demonstração

Page 46: Meetup DevOps Carioca - 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 47: Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor

Obrigado!

Stefan Teixeira @stefan_teixeira

[email protected] stefanteixeira.com.br

stefanteixeira.com