Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Talk Docker e Vagrant

Talk Docker e Vagrant

Apresentado no segundo meetup de Vagrant em São Paulo.

Wellington F. Silva

July 06, 2015
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. Vagrant vs Docker? Melhor Vagrant + Docker

  2. About me $nome = 'Wellington F. Silva'; $nick = ['_wsilva,

    'tom', 'boina', 'fisi', 'iéié']; $work = 'devop'; $background = '~2000'; $titles = ['ZCE PHP 5.3', 'Técnico Telecom', 'Quase Bacharel SI - USP']; $contact = ['twitter' => '_wsilva'];
  3. Overview • Problema da padronização • Soluções • Virtualização •

    Conteinerização • Comparação • Vagrant • Demo • Bate papo
  4. O problema

  5. O problema

  6. O problema

  7. O problema Exemplos: • php substr vs mb_substr

  8. O problema Exemplos: • php substr vs mb_substr • valor

    default current_timestamp (MySQL vs Percona)
  9. Soluções • Trabalhar direto no servidor (FTP)

  10. Soluções • Trabalhar direto no servidor (FTP) • Montar na

    unha o ambiente de cada projeto
  11. Soluções • Trabalhar direto no servidor (FTP) • Montar na

    unha o ambiente de cada projeto • Virtualizar
  12. Soluções • Trabalhar direto no servidor (FTP) • Montar na

    unha o ambiente de cada projeto • Virtualizar • Conteinerizar
  13. Virtualização

  14. Virtualização • 1960 - cpu time sharing (inspiração)

  15. Virtualização • 1960 - cpu time sharing (inspiração) • IBM

    370 - Projetado para virtualização. Via softare com o CP/CMS.
  16. Virtualização • 1960 - cpu time sharing (inspiração) • IBM

    370 - Projetado para virtualização. Via softare com o CP/CMS. • IBM z/VM - Case de sucesso com virtualização por hardware.
  17. Virtualização • 1960 - cpu time sharing (inspiração) • IBM

    370 - Projetado para virtualização. Via softare com o CP/CMS. • IBM z/VM - Case de sucesso com virtualização por hardware. • Decada de 90 em diante: VMWare, Xen, KVM, VirtualBox, etc...
  18. Virtualização

  19. Virtualização Vantagem: • Mesma VM nos ambientes dev, homolog e

    prod
  20. Virtualização Vantagem: • Mesma VM nos ambientes dev, homolog e

    prod • Padronização de ambientes.
  21. Virtualização Desvantagens: • Montagem e inicialização lentos

  22. Virtualização Desvantagens: • Montagem e inicialização lentos • Gasta muitos

    recursos de hardware.
  23. Virtualização Next Step • Técnicas de imagem e snapshots

  24. Virtualização Next Step • Técnicas de imagem e snapshots •

    Automação de montagens (Vagrant, Chef, Puppet, Ansible)
  25. Sistemas complexos

  26. Sistemas complexos • Difícil reproduzir todos os componentes em dev.

    (5, 6, 7 até 10 VMs)
  27. Sistemas complexos • Difícil reproduzir todos os componentes em dev.

    (5, 6, 7 até 10 VMs) • Problemas de detalhes de comunicação entre serviços
  28. Sistemas complexos • Difícil reproduzir todos os componentes em dev.

    (5, 6, 7 até 10 VMs) • Problemas de detalhes de comunicação entre serviços • Difícil testar escalabilidade da aplicação
  29. Conteinerização

  30. Conteinerização LXC - Linux Containers: • Jul / 2008 -

    Kernel 2.6.26 +
  31. LXC - Linux Containers: • Jul / 2008 - Kernel

    2.6.26 + • lxc-start Conteinerização
  32. LXC - Linux Containers: • Jul / 2008 - Kernel

    2.6.26 + • lxc-start • compartilha kernel e libs com o host Conteinerização
  33. LXC - Linux Containers: • Jul / 2008 - Kernel

    2.6.26 + • lxc-start • compartilha kernel e libs com o host • isola processo nos Control Groups (CGroups) Conteinerização
  34. LXC - Linux Containers: • Jul / 2008 - Kernel

    2.6.26 + • lxc-start • compartilha kernel e libs com o host • isola processo nos Control Groups (CGroups) • difícil gerenciar Conteinerização
  35. Conteinerização

  36. Docker • Copy on Write Conteinerização

  37. Docker • Copy on Write • Compartilhamento de imagens (Docker

    Hub) Conteinerização
  38. Docker • Copy on Write • Compartilhamento de imagens (Docker

    Hub) • Receita para criação de container (Dockerfile) Conteinerização
  39. Docker • Copy on Write • Compartilhamento de imagens (Docker

    Hub) • Receita para criação de container (Dockerfile) • Camada de Api REST Conteinerização
  40. Docker • Copy on Write • Compartilhamento de imagens (Docker

    Hub) • Receita para criação de container (Dockerfile) • Camada de Api REST • Inovando (machine, compose, swarm, etc) Conteinerização
  41. Conteinerização

  42. Vantagens • sobe muito rápido Conteinerização

  43. Vantagens • sobe muito rápido • otimiza recursos Conteinerização

  44. Vantagens • sobe muito rápido • otimiza recursos • fácil

    replicação Conteinerização
  45. Vantagens • sobe muito rápido • otimiza recursos • fácil

    replicação • inovações crescentes (opencontainers.org) Conteinerização
  46. Desvantagens • Overhead de IO Conteinerização

  47. Desvantagens • Overhead de IO • Não tão isolado Conteinerização

  48. Desvantagens • Overhead de IO • Não tão isolado •

    Só host Linux e conteiners Linux Conteinerização
  49. Next Steps • suporte ativo a freebsd Conteinerização

  50. Next Steps • suporte ativo a freebsd • mac osx

    e windows precisam de uma VM linux que serve de host para os conteiners Conteinerização
  51. Next Steps • suporte ativo a freebsd • mac osx

    e windows precisam de uma VM linux que serve de host para os conteiners • problema com lentidão de leitura e permissão de arquivos (vbox-share) Conteinerização
  52. Next Steps • suporte nativo a freebsd • mac osx

    e windows precisam de uma VM linux que sirva de host para os conteiners • problema com lentidão de leitura e permissão de arquivos (vbox-share) • boot2docker limitado (vbox-share e nfs) Conteinerização
  53. Vagrant

  54. • suporte a docker desde 1.4.0 (dez, 2013) Vagrant

  55. • suporte a docker desde 1.4.0 (dez, 2013) • suporte

    a rsync desde 1.5.0 (mar, 2014) Vagrant
  56. • suporte a docker desde 1.4.0 (dez, 2013) • suporte

    a rsync desde 1.5.0 (mar, 2014) • ajuda no problema com lentidão de leitura e permissão de arquivos (vbox-share) Vagrant
  57. • suporte a docker desde 1.4.0 (dez, 2013) • suporte

    a rsync desde 1.5.0 (mar, 2014) • ajuda no problema com lentidão de leitura e permissão de arquivos (vbox-share) • opções de compartilhamento (vbox-share, rsync, nfs, sbmfs) Vagrant
  58. • suporte a docker desde 1.4.0 (dez, 2013) • suporte

    a rsync desde 1.5.0 (mar, 2014) • ajuda no problema com lentidão de leitura e permissão de arquivos (vbox-share) • opções de compartilhamento (vbox-share, rsync, nfs, sbmfs) • Permite outras VMs (CoresOS, Ubuntu, etc) Vagrant
  59. Demo

  60. A hora da tela azul... Demo

  61. Perguntas

  62. http://bit.ly/talk-vagrant-docker https://joind.in/14828