Talk Docker e Vagrant

Talk Docker e Vagrant

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

280fecb4f048de5ecf36bec281609ea4?s=128

Wellington F. Silva

July 06, 2015
Tweet

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