docker como super comando

24
Docker como super comando Infradel Team

Upload: rafael-gomes

Post on 15-Apr-2017

599 views

Category:

Technology


0 download

TRANSCRIPT

Docker como super comando

Infradel Team

Quem somos

Infradel:● Objetivo: Consultoria para migração de projetos

do modelo centralizado para cloud, com automação e auto-serviço.

● Membros:○ Rafael Gomes (PoA - Brasil)○ Rafael Nunes (PoA - Brasil)○ Augusto Amaral (PoA - Brasil)○ Fernando Laimer (PoA - Brasil)○ Ronak Jain (Belo Horizonte - Brasil)○ Chris Briesemeister ( Chicago - EUA)○ Ben Cornelius ( Chicago - EUA)○ Freddy Coronel ( Quito - Equador)

● Principais tecnologias○ Cloud (AWS)○ Automação de infra (Ansible, Cloudformation)○ Testes de infraestrutura (ServerSpec, Behave)○ Container (Docker)○ Programação (Python e Ruby)

Quem sou eu

Rafael Gomes:● Soteropolitano● Apaixonado por compartilhamento● Consultor na Thoughtworks● Blog: techfree.com.br● Twitter/github: @gomex● Áreas de interesse/foco:

○ Cultura DevOps○ Cloud○ Entrega contínua○ Automação de infraestrutura○ Teste de infraestrutura○ Monitoramento

O que estou fazendo de relevante agora

Livro:

http://tinyurl.com/docker-devel

● Pague quanto quiser, inclusive nada

● Não precisa saber nada de Docker

● Licenciado com Creative Commons

Conhece docker?Container, baleia, isso faz algum sentido pra ti?

E entrega contínua?Entregando valor continuamente

Produto ProdutoDesenvolvimento

Motivações

Motivações - O que tínhamos

python 2.7

modules

openssl

xmlsec1

Instalação manual ProdutoArtefato

pipeline

Config manual

no servidor CI

agent1

agent2

agent3

devticketops

devsudo

git

server app A

server app Bserver app C

AbordagemSuper comando

● Minimizar necessidade de

modificação no agente CI

● Permitir auto serviço no pipeline

Super comandos

Objetivos:● Utilizar o mesmo ambiente

que roda em produção na máquina do desenvolvedor

● Construa uma vez, rode em qualquer lugar (GNU/Linux)

● Padrão como vetor de velocidade no desenvolvimento

O que nós fizemos

Motivações - O que tínhamos

python 2.7

modules

openssl

xmlsec1

Instalação manual ProdutoArtefato

pipeline

Config manual

no servidor CI

agent1

agent2

agent3

devticketops

devsudo

git

server app A

server app Bserver app C

A ideia

Super comandosDocker

Produtosartefatos

pipeline

Config manual

do servidor CI

agent1

agent2

agent3

git

servers app A

servers app B

servers app C

commit Dockerfile

no git repo

python 2.7modulesopensslxmlsec1

O que foi feito

Super comandosDocker

ProdutosArtefatos

pipeline

Config manual

no CI server

agent1

agent2

agent3

git

servers app A

servers app B

servers app C

commit Dockerfile

no git repo

Exemplos

Imagem CloudFormation

● python● py-pip● bash● awscli● boto3

Imagem Ansible

● python(2.7)● py-pip● openssl● ca-certificates● bash● git● openssh● bash● awscli● ansible● boto3

Exemplos dos super comandos

Exemplo da pipeline de entrega contínua

Exemplo da pipeline de entrega contínua

● Minização de custo

compartilhando agentes CD

● Sem gargálos para os usuários do CD

Super comandos

● Fácil reproduzir localmente

Prós:

● Baixa necessidade de administração nos agentes do CD

● A escolha da distro do agente CD não afetem os usuários

● Tratamento de problemas

mais complexo

Toolset

Cons:

● Curva de aprendizado (novo mindset, novas ferramentas, etc.)

● Você precisa usar containers docker para todas tarefas

● Problemas de performance no agente afetam todos os usuários

● Preste atenção na ordem o

Dockerfile na construção da imagem

Toolset

Lições aprendidas

● Use scripts shell para facilitar o build e execução dos containers

● Use script shell para gerenciar variáveis locais

● Mantenha o docker atualizado

● Cluster docker?

Toolset

Próximos passos:

● Gerenciamento de segredos (credstash?)

● Melhor gerenciamento de variáveis

Dúvidas?

Rafael Gomes:

twitter.com/gomex

[email protected]

twitter.com/thoughtworks_pt

Obrigado!