Download - Docker como super comando
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
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
● 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
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
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
● 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