O documento descreve como a Infradel implementou "super comandos" usando Docker para padronizar o ambiente de desenvolvimento e entrega contínua, permitindo que as equipes utilizem as mesmas ferramentas e configurações independentemente da máquina. Eles criaram imagens Docker com as bibliotecas e ferramentas necessárias para diferentes propósitos como CloudFormation e Ansible. Isso melhorou a velocidade e reproducibilidade do desenvolvimento.
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
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
4. 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
8. 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
10. ● 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
12. 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
14. 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
19. ● 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
20. ● 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
21. ● 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