Slide 1

Slide 1 text

Vagrant vs Docker? Melhor Vagrant + Docker

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

O problema

Slide 5

Slide 5 text

O problema

Slide 6

Slide 6 text

O problema

Slide 7

Slide 7 text

O problema Exemplos: ● php substr vs mb_substr

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Virtualização

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

Virtualização

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

Sistemas complexos

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

Conteinerização

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

Conteinerização

Slide 36

Slide 36 text

Docker ● Copy on Write Conteinerização

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

Conteinerização

Slide 42

Slide 42 text

Vantagens ● sobe muito rápido Conteinerização

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

Desvantagens ● Overhead de IO Conteinerização

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

Next Steps ● suporte ativo a freebsd Conteinerização

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

Vagrant

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

● 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

Slide 57

Slide 57 text

● 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

Slide 58

Slide 58 text

● 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

Slide 59

Slide 59 text

Demo

Slide 60

Slide 60 text

A hora da tela azul... Demo

Slide 61

Slide 61 text

Perguntas

Slide 62

Slide 62 text

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