Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Talk no Meetup Laravel SP 3

Talk no Meetup Laravel SP 3

Talk presented at Meetup Laravel SP #3 about docker from basics to docker orchestration

Video da apresentação:
https://youtu.be/mR2px-mKjd0

Wellington F. Silva

May 07, 2015
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. 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'];
  2. Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual

    Box, VMWare, Xen,...) • LXC • Docker • Orquestração de containers
  3. Overview • Virtualization, LXC, VMs vs Containers • O que

    é Docker • Uso Básico • Orquestração de Containers
  4. 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)
  5. LXC - Linux Containers • Isolamento de processo (chroot) •

    Isolamento de rede • Limitação de memória ! 
 

  6. LXC - Linux Containers • Isolamento de processo (chroot) •

    Isolamento de rede • Limitação de memória • Isolamento de File System 
 

  7. LXC - Linux Containers • Isolamento de processo (chroot) •

    Isolamento de rede • Limitação de memória • Isolamento de File System • Dificuldade de compartilhamento de volumes
  8. 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
  9. LXC - Linux Containers • Rodando:
 sudo lxc-start --name testando


    udhcpc: SIOCGIFINDEX: No such device
 Please press Enter to activate this console.
 / 

  10. 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
  11. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management

    (imagens) • Automatic build (Dockerfile) • Component re-use (FROM: image)
  12. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management

    (imagens) • Automatic build (Dockerfile) • Component re-use (FROM: image) • Sharing (dockerhub/registry)
  13. VMs vs Docker • Sobe rápido • Padronização • Fácil

    replicação • Melhor utilização de recursos
  14. VMs vs Docker • Sobe rápido • Padronização • Fácil

    replicação • Melhor utilização de recursos • Overhead de IO !
  15. 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
  16. 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
  17. Tips • Não é VM, é CONTAINER • Porque container

    (padrão de transporte) • Conceito de Guest e Host, também vale. 

  18. 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)
  19. Basics • docker pull ! ! ! ! ! !

    Tutorial de introdução (10min): https://www.docker.com/tryit/
  20. Basics • docker pull • docker ps ! ! !

    ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  21. Basics • docker pull • docker ps • docker images

    ! ! ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  22. Basics • docker pull • docker ps • docker images

    • docker run ! ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  23. Basics • docker pull • docker ps • docker images

    • docker run • docker exec ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  24. Basics • docker pull • docker ps • docker images

    • docker run • docker exec • docker commit ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  25. 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/
  26. 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/
  27. Instalation • Debian, Arch, Fedora, CentOS, AWS EC2, Mac OS

    X, Suse, Microsoft Ubuntu, Microsoft Windows, etc... 
 https://docs.docker.com/installation/#installation
  28. 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
  29. Docker Machine • Cria uma VM com boot2docker onde você

    quiser 
 
 
 
 
 https://docs.docker.com/machine/
  30. 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/
  31. 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/
  32. Docker Compose • Antigo fig.sh • Arquivo yml que descreve

    os microsistemas 
 
 https://docs.docker.com/compose/
  33. 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/
  34. Why Compose? • Imagine que você entrou no E-Bahya •

    Maior e-commerce da África Latina com trocentos acessos por minutos 
 

  35. 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)
  36. 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
  37. Why Compose? Como você monta o ambiente na sua máquina?

    a) vou instalando os pacotes: do banco, nginx / apache, etc
 
 
 
 
 
 

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

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

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

  41. 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
  42. Q&A