$30 off During Our Annual Pro Sale. View Details »

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

    View Slide

  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'];

    View Slide

  3. Overview
    ● Problema da padronização
    ● Soluções
    ● Virtualização
    ● Conteinerização
    ● Comparação
    ● Vagrant
    ● Demo
    ● Bate papo

    View Slide

  4. O problema

    View Slide

  5. O problema

    View Slide

  6. O problema

    View Slide

  7. O problema
    Exemplos:
    ● php substr vs mb_substr

    View Slide

  8. O problema
    Exemplos:
    ● php substr vs mb_substr
    ● valor default current_timestamp (MySQL vs
    Percona)

    View Slide

  9. Soluções
    ● Trabalhar direto no servidor (FTP)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. Virtualização

    View Slide

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

    View Slide

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

    View Slide

  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.

    View Slide

  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...

    View Slide

  18. Virtualização

    View Slide

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

    View Slide

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

    View Slide

  21. Virtualização
    Desvantagens:
    ● Montagem e inicialização lentos

    View Slide

  22. Virtualização
    Desvantagens:
    ● Montagem e inicialização lentos
    ● Gasta muitos recursos de hardware.

    View Slide

  23. Virtualização
    Next Step
    ● Técnicas de imagem e snapshots

    View Slide

  24. Virtualização
    Next Step
    ● Técnicas de imagem e snapshots
    ● Automação de montagens (Vagrant, Chef,
    Puppet, Ansible)

    View Slide

  25. Sistemas complexos

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  29. Conteinerização

    View Slide

  30. Conteinerização
    LXC - Linux Containers:
    ● Jul / 2008 - Kernel 2.6.26 +

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  35. Conteinerização

    View Slide

  36. Docker
    ● Copy on Write
    Conteinerização

    View Slide

  37. Docker
    ● Copy on Write
    ● Compartilhamento de imagens (Docker Hub)
    Conteinerização

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  41. Conteinerização

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  45. Vantagens
    ● sobe muito rápido
    ● otimiza recursos
    ● fácil replicação
    ● inovações crescentes (opencontainers.org)
    Conteinerização

    View Slide

  46. Desvantagens
    ● Overhead de IO
    Conteinerização

    View Slide

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

    View Slide

  48. Desvantagens
    ● Overhead de IO
    ● Não tão isolado
    ● Só host Linux e conteiners Linux
    Conteinerização

    View Slide

  49. Next Steps
    ● suporte ativo a freebsd
    Conteinerização

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  53. Vagrant

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  59. Demo

    View Slide

  60. A hora da tela azul...
    Demo

    View Slide

  61. Perguntas

    View Slide

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

    View Slide