Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Docker como super comando

885 views

Published on

Já pensou ter um super comando, com todas as dependências necessárias para executá-los? Não importa que seja apenas um build simples de um artefato ou uma criação de infraestrutura complexa na nuvem. Isto já é possível hoje.

Utilizando imagens docker, e um pouco de imaginação, é possível criar imagens que podem ser usadas para iniciar containers de vida curta, que terão como objetivo executar alguma atividade específica, com todas as bibliotecas na versão específica, arquivos de configuração de infraestrutura gerenciado pelo desenvolvedor. Tudo isso sendo executado a partir do mesmo host, que inclusive pode ser a estação do desenvolvedor.

Com posse de super comandos é possível compartilhar o mesmo host de pipeline para desempenhar papéis distintos e oferecer autonomia para os usuários desse ambiente, ou seja, o desenvolvedor a partir desse momento terá controle de toda a infraestrutura necessária para desempenhar suas atividades.

Principais técnicas abordadas na palestra:

Conhecimento básico sobre o funcionamento das imagens e containers Docker;
Conhecimento básico de construção de imagem Docker;
Apresentação do problema;
Demonstração da solução através da criação de imagens;
Demonstração da solução adotada em pipeline.

Todas as ferramentas e exemplos mostrados são inspirados em pipelines reais executadas em projetos atuais.

Published in: Technology

Docker como super comando

  1. 1. Docker como super comando Infradel Team
  2. 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. 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. 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
  5. 5. Conhece docker? Container, baleia, isso faz algum sentido pra ti?
  6. 6. E entrega contínua? Entregando valor continuamente Produto ProdutoDesenvolvimento
  7. 7. Motivações
  8. 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
  9. 9. Abordagem Super comando
  10. 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
  11. 11. O que nós fizemos
  12. 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
  13. 13. 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
  14. 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
  15. 15. Exemplos
  16. 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. 17. Exemplo da pipeline de entrega contínua
  18. 18. Exemplo da pipeline de entrega contínua
  19. 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. 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. 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
  22. 22. ● Cluster docker? Toolset Próximos passos: ● Gerenciamento de segredos (credstash?) ● Melhor gerenciamento de variáveis
  23. 23. Dúvidas?
  24. 24. Rafael Gomes: twitter.com/gomex rgomes@thoughtworks.com twitter.com/thoughtworks_pt Obrigado!

×