talk no meetup laravelsp #3
Post on 09-Aug-2015
40 Views
Preview:
TRANSCRIPT
Docker do básico à orquestração de containers
Meetup de Laravel em São Paulo #3
Sobre• $nome = 'Wellington F. Silva';
• $nick = ['_wsilva, 'tom', 'boina', 'fisi', 'iéié'];
• $work = 'developer';
• $background = '~2000';
• $titles = ['ZCE PHP 5.3', 'Técnico Telecom', 'Quase Bacharel SI - USP'];
• $contact = ['twitter' => '_wsilva'];
Quick Research
Já ouviu falar sobre:
• Virtualização (Vagrant, Virtual Box, VMWare, Xen,...)
!
!
Quick Research
Já ouviu falar sobre:
• Virtualização (Vagrant, Virtual Box, VMWare, Xen,...)
• LXC
!
Quick Research
Já ouviu falar sobre:
• Virtualização (Vagrant, Virtual Box, VMWare, Xen,...)
• LXC
• Docker
Quick Research
Já ouviu falar sobre:
• Virtualização (Vagrant, Virtual Box, VMWare, Xen,...)
• LXC
• Docker
• Orquestração de containers
Overview
Overview
• Virtualization, LXC, VMs vs Containers
!
!
Overview
• Virtualization, LXC, VMs vs Containers
• O que é Docker
!
Overview
• Virtualization, LXC, VMs vs Containers
• O que é Docker
• Uso Básico
Overview
• Virtualization, LXC, VMs vs Containers
• O que é Docker
• Uso Básico
• Orquestração de Containers
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)
LXC - Linux Containers
• Isolamento de processo (chroot)
!
!
!
LXC - Linux Containers
• Isolamento de processo (chroot)
• Isolamento de rede
!
!
LXC - Linux Containers
• Isolamento de processo (chroot)
• Isolamento de rede
• Limitação de memória
!
LXC - Linux Containers
• Isolamento de processo (chroot)
• Isolamento de rede
• Limitação de memória
• Isolamento de File System
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
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
LXC - Linux Containers
• Rodando:sudo lxc-start --name testandoudhcpc: SIOCGIFINDEX: No such devicePlease press Enter to activate this console. /
LXC - Linux Containers
• Rodando:sudo lxc-start --name testandoudhcpc: SIOCGIFINDEX: No such devicePlease press Enter to activate this console. /
• Parando (tem que usar um outro terminal no host): sudo lxc-stop --name testando
Docker
• Copy-on-write (AUFS)
!
!
!
!
Docker
• Copy-on-write (AUFS)
• Logging (stdout/stderr/stdin)
!
!
!
Docker
• Copy-on-write (AUFS)
• Logging (stdout/stderr/stdin)
• Change management (imagens)
!
!
Docker
• Copy-on-write (AUFS)
• Logging (stdout/stderr/stdin)
• Change management (imagens)
• Automatic build (Dockerfile)
!
Docker
• Copy-on-write (AUFS)
• Logging (stdout/stderr/stdin)
• Change management (imagens)
• Automatic build (Dockerfile)
• Component re-use (FROM: image)
Docker
• Copy-on-write (AUFS)
• Logging (stdout/stderr/stdin)
• Change management (imagens)
• Automatic build (Dockerfile)
• Component re-use (FROM: image)
• Sharing (dockerhub/registry)
VMs vs Docker
VMs vs Docker
• Sobe rápido
!
!
VMs vs Docker
• Sobe rápido
• Padronização
!
VMs vs Docker
• Sobe rápido
• Padronização
• Fácil replicação
VMs vs Docker
• Sobe rápido
• Padronização
• Fácil replicação
• Melhor utilização de recursos
VMs vs Docker
• Sobe rápido
• Padronização
• Fácil replicação
• Melhor utilização de recursos
• Overhead de IO
!
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
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
Tips
• Não é VM, é CONTAINER
!
!
Tips
• Não é VM, é CONTAINER
• Porque container (padrão de transporte)
!
Tips
• Não é VM, é CONTAINER
• Porque container (padrão de transporte)
• Conceito de Guest e Host, também vale.
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)
Basics• docker pull
!
!
!
!
!
!
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics• docker pull
• docker ps
!
!
!
!
!
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics• docker pull
• docker ps
• docker images
!
!
!
!
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics• docker pull
• docker ps
• docker images
• docker run
!
!
!
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics• docker pull
• docker ps
• docker images
• docker run
• docker exec
!
!
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics• docker pull
• docker ps
• docker images
• docker run
• docker exec
• docker commit
!
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics• docker pull
• docker ps
• docker images
• docker run
• docker exec
• docker commit
• docker inspect
Tutorial de introdução (10min): https://www.docker.com/tryit/
Basics• docker pull
• docker ps
• docker images
• docker run
• docker exec
• docker commit
• docker inspect
• docker push
Tutorial de introdução (10min): https://www.docker.com/tryit/
Instalation
• Debian, Arch, Fedora, CentOS, AWS EC2, Mac OS X, Suse, Microsoft Ubuntu, Microsoft Windows, etc...
https://docs.docker.com/installation/#installation
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
Docker Machine
• Cria uma VM com boot2docker onde você quiser
https://docs.docker.com/machine/
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/
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/
Docker Compose
DOCKER COMPOSEe não composeeerrr...
Docker Compose
• Antigo fig.sh
https://docs.docker.com/compose/
Docker Compose
• Antigo fig.sh
• Arquivo yml que descreve os microsistemas
https://docs.docker.com/compose/
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/
Why Compose?
• Imagine que você entrou no E-Bahya
Why Compose?
• Imagine que você entrou no E-Bahya
• Maior e-commerce da África Latina com trocentos acessos por minutos
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)
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
Why Compose?
Como você monta o ambiente na sua máquina?
Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etc
Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etcb) vou instalando mas na versão do site: nginx 1.2.1, php 5.6.1
Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etcb) 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
Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etcb) 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.
Why Compose?
Como você monta o ambiente na sua máquina?
a) vou instalando os pacotes: do banco, nginx / apache, etcb) 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
Live Demoanything can go wrong now
Q&A
Slides
top related