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 Produto
Artefato
pipeline
Config manual
no servidor CI
agent1
agent2
agent3
devticketops
devsudo
git
server app A
server app B
server app C
Abordagem
Super 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 Produto
Artefato
pipeline
Config manual
no servidor CI
agent1
agent2
agent3
devticketops
devsudo
git
server app A
server app B
server app C
A ideia
Super comandos
Docker
Produtos
artefatos
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.7
modules
openssl
xmlsec1
O que foi feito
Super comandos
Docker
Produtos
Artefatos
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
rgomes@thoughtworks.com
twitter.com/thoughtworks_pt
Obrigado!

Docker como super comando

  • 1.
  • 2.
    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)
  • 3.
    Quem sou eu RafaelGomes: ● 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
  • 4.
    O que estoufazendo 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
  • 5.
    Conhece docker? Container, baleia,isso faz algum sentido pra ti?
  • 6.
    E entrega contínua? Entregandovalor continuamente Produto ProdutoDesenvolvimento
  • 7.
  • 8.
    Motivações - Oque tínhamos python 2.7 modules openssl xmlsec1 Instalação manual Produto Artefato pipeline Config manual no servidor CI agent1 agent2 agent3 devticketops devsudo git server app A server app B server app C
  • 9.
  • 10.
    ● Minimizar necessidadede 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
  • 11.
    O que nósfizemos
  • 12.
    Motivações - Oque tínhamos python 2.7 modules openssl xmlsec1 Instalação manual Produto Artefato pipeline Config manual no servidor CI agent1 agent2 agent3 devticketops devsudo git server app A server app B server app C
  • 13.
    A ideia Super comandos Docker Produtos artefatos pipeline Configmanual do servidor CI agent1 agent2 agent3 git servers app A servers app B servers app C commit Dockerfile no git repo python 2.7 modules openssl xmlsec1
  • 14.
    O que foifeito Super comandos Docker Produtos Artefatos pipeline Config manual no CI server agent1 agent2 agent3 git servers app A servers app B servers app C commit Dockerfile no git repo
  • 15.
  • 16.
    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
  • 17.
    Exemplo da pipelinede entrega contínua
  • 18.
    Exemplo da pipelinede entrega contínua
  • 19.
    ● Minização decusto 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
  • 20.
    ● Tratamento deproblemas 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
  • 21.
    ● Preste atençãona 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
  • 22.
    ● Cluster docker? Toolset Próximospassos: ● Gerenciamento de segredos (credstash?) ● Melhor gerenciamento de variáveis
  • 23.
  • 24.