Quick Research
Já ouviu falar sobre:
• Virtualização (Vagrant, Virtual Box, VMWare, Xen,...)
!
!
Slide 4
Slide 4 text
Quick Research
Já ouviu falar sobre:
• Virtualização (Vagrant, Virtual Box, VMWare, Xen,...)
• LXC
!
Slide 5
Slide 5 text
Quick Research
Já ouviu falar sobre:
• Virtualização (Vagrant, Virtual Box, VMWare, Xen,...)
• LXC
• Docker
Slide 6
Slide 6 text
Quick Research
Já ouviu falar sobre:
• Virtualização (Vagrant, Virtual Box, VMWare, Xen,...)
• LXC
• Docker
• Orquestração de containers
Slide 7
Slide 7 text
Overview
Slide 8
Slide 8 text
Overview
• Virtualization, LXC, VMs vs Containers
!
!
Slide 9
Slide 9 text
Overview
• Virtualization, LXC, VMs vs Containers
• O que é Docker
!
Slide 10
Slide 10 text
Overview
• Virtualization, LXC, VMs vs Containers
• O que é Docker
• Uso Básico
Slide 11
Slide 11 text
Overview
• Virtualization, LXC, VMs vs Containers
• O que é Docker
• Uso Básico
• Orquestração de Containers
Slide 12
Slide 12 text
Virtualização
Um sistema operacional
completo (Guest)
rodando sobre o sistema
operacional que está
rodando na máquina
física (Host)
Opinião pessoal
(mais defin. ver no google)
Slide 13
Slide 13 text
LXC - Linux Containers
• Isolamento de processo
(chroot)
!
!
!
Slide 14
Slide 14 text
LXC - Linux Containers
• Isolamento de processo
(chroot)
• Isolamento de rede
!
!
Slide 15
Slide 15 text
LXC - Linux Containers
• Isolamento de processo
(chroot)
• Isolamento de rede
• Limitação de memória
!
Slide 16
Slide 16 text
LXC - Linux Containers
• Isolamento de processo
(chroot)
• Isolamento de rede
• Limitação de memória
• Isolamento de File System
Slide 17
Slide 17 text
LXC - Linux Containers
• Isolamento de processo
(chroot)
• Isolamento de rede
• Limitação de memória
• Isolamento de File System
• Dificuldade de
compartilhamento de
volumes
LXC - Linux Containers
• Instalando LXC:
sudo apt-get install lxc
• Criando um container busybox (minimalista):
sudo lxc-create --template busybox --name testando
setting root password to "root"
Password for 'root' changed
Slide 20
Slide 20 text
LXC - Linux Containers
• Rodando:
sudo lxc-start --name testando
udhcpc: SIOCGIFINDEX: No such device
Please press Enter to activate this console.
/
Slide 21
Slide 21 text
LXC - Linux Containers
• Rodando:
sudo lxc-start --name testando
udhcpc: SIOCGIFINDEX: No such device
Please press Enter to activate this console.
/
• Parando (tem que usar um outro terminal no host):
sudo lxc-stop --name testando
VMs vs Docker
• Sobe rápido
• Padronização
• Fácil replicação
• Melhor utilização de
recursos
Slide 35
Slide 35 text
VMs vs Docker
• Sobe rápido
• Padronização
• Fácil replicação
• Melhor utilização de
recursos
• Overhead de IO
!
Slide 36
Slide 36 text
VMs vs Docker
• Sobe rápido
• Padronização
• Fácil replicação
• Melhor utilização de
recursos
• Overhead de IO
• Não tão isolado
Slide 37
Slide 37 text
VMs vs Docker
• Sobe rápido
• Padronização
• Fácil replicação
• Melhor utilização de
recursos
• Overhead de IO
• Não tão isolado
• Só Linux
Slide 38
Slide 38 text
Tips
• Não é VM, é CONTAINER
!
!
Slide 39
Slide 39 text
Tips
• Não é VM, é CONTAINER
• Porque container (padrão de transporte)
!
Slide 40
Slide 40 text
Tips
• Não é VM, é CONTAINER
• Porque container (padrão de transporte)
• Conceito de Guest e Host, também vale.
Slide 41
Slide 41 text
Tips
• Não é VM, é CONTAINER
• Porque container (padrão de transporte)
• Conceito de Guest e Host, também vale.
• Imagem vs Container (imagem é estática, container é
o que roda). Similar a VM e imagem da VM (AMI)
Instalation
• Debian, Arch, Fedora,
CentOS, AWS EC2, Mac OS
X, Suse, Microsoft Ubuntu,
Microsoft Windows, etc...
https://docs.docker.com/installation/#installation
Slide 51
Slide 51 text
Instalation
• Debian, Arch, Fedora,
CentOS, AWS EC2, Mac OS
X, Suse, Microsoft Ubuntu,
Microsoft Windows, etc...
• Mac OS X e Microsoft
Windows (boot2docker-vm)
https://docs.docker.com/installation/#installation
Slide 52
Slide 52 text
Docker Machine
• Cria uma VM com
boot2docker onde você
quiser
https://docs.docker.com/machine/
Slide 53
Slide 53 text
Docker Machine
• Cria uma VM com
boot2docker onde você
quiser
• Amazon Web Services, Digital
Ocean, Google Compute
Engine, IBM Softlayer,
Microsoft Azure, Openstack,
etc...
https://docs.docker.com/machine/
Slide 54
Slide 54 text
Docker Machine
• Cria uma VM com
boot2docker onde você
quiser
• Amazon Web Services, Digital
Ocean, Google Compute
Engine, IBM Softlayer,
Microsoft Azure, Openstack,
etc...
• Preparado para criação de
clusters (Swarms)
https://docs.docker.com/machine/
Slide 55
Slide 55 text
Docker Compose
Slide 56
Slide 56 text
DOCKER COMPOSE
e não composeeerrr...
Slide 57
Slide 57 text
Docker Compose
• Antigo fig.sh
https://docs.docker.com/compose/
Slide 58
Slide 58 text
Docker Compose
• Antigo fig.sh
• Arquivo yml que descreve os
microsistemas
https://docs.docker.com/compose/
Slide 59
Slide 59 text
Docker Compose
• Antigo fig.sh
• Arquivo yml que descreve os
microsistemas
• Comandos: build, help, kill,
logs, port, ps, pull, rm, run,
scale, start, stop, up
https://docs.docker.com/compose/
Slide 60
Slide 60 text
Why Compose?
• Imagine que você entrou no E-Bahya
Slide 61
Slide 61 text
Why Compose?
• Imagine que você entrou no E-Bahya
• Maior e-commerce da África Latina com trocentos acessos por
minutos
Slide 62
Slide 62 text
Why Compose?
• Imagine que você entrou no E-Bahya
• Maior e-commerce da África Latina com trocentos acessos por
minutos
• Cada serviço do E-Bahya roda em um servidor na nuvem Alazão
Jeg Servers (escalável de acordo com a qtde de acessos - sempre
entre 5 e 10 instâncias rodando)
Slide 63
Slide 63 text
Why Compose?
• Imagine que você entrou no E-Bahya
• Maior e-commerce da África Latina com trocentos acessos por
minutos
• Cada serviço do E-Bahya roda em um servidor na nuvem Alazão
Jeg Servers (escalável de acordo com a qtde de acessos - sempre
entre 5 e 10 instâncias rodando)
• Serviços se comunicam entre si via rede privada
Slide 64
Slide 64 text
No content
Slide 65
Slide 65 text
Why Compose?
Como você monta o ambiente na sua máquina?
Slide 66
Slide 66 text
No content
Slide 67
Slide 67 text
Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etc
Slide 68
Slide 68 text
Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etc
b) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1
Slide 69
Slide 69 text
Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etc
b) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1
c) vou levantar um virtualbox com todos os serviços instalados
Slide 70
Slide 70 text
Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etc
b) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1
c) vou levantar um virtualbox com todos os serviços instalados
d) manjo tudo de docker vou montar um container com a distro linux
que está nos servidores e os pacotes nas versões certas.
Slide 71
Slide 71 text
Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etc
b) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1
c) vou levantar um virtualbox com todos os serviços instalados
d) manjo tudo de docker vou montar um container com a distro linux
que está nos servidores e os pacotes nas versões certas.
e) um container para cada serviço: um pro banco, um para a sessão,
um pro servidor web, um para o elastic search, um para o frontend e
um para o backend e assim por diante