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

280fecb4f048de5ecf36bec281609ea4?s=128

Wellington F. Silva

May 07, 2015
Tweet

Transcript

  1. Docker do básico à orquestração de containers Meetup de Laravel

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

    Box, VMWare, Xen,...) ! !
  4. Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual

    Box, VMWare, Xen,...) • LXC !
  5. Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual

    Box, VMWare, Xen,...) • LXC • Docker
  6. Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual

    Box, VMWare, Xen,...) • LXC • Docker • Orquestração de containers
  7. Overview

  8. Overview • Virtualization, LXC, VMs vs Containers ! !

  9. Overview • Virtualization, LXC, VMs vs Containers • O que

    é Docker !
  10. Overview • Virtualization, LXC, VMs vs Containers • O que

    é Docker • Uso Básico
  11. Overview • Virtualization, LXC, VMs vs Containers • O que

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

    ! ! 
 

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

    Isolamento de rede ! ! 
 

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

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

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

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

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

    Isolamento de rede • Limitação de memória • Isolamento de File System • Dificuldade de compartilhamento de volumes
  18. LXC - Linux Containers • Instalando LXC: 
 sudo apt-get

    install lxc 
 
 

  19. 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
  20. LXC - Linux Containers • Rodando:
 sudo lxc-start --name testando


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

  21. 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
  22. None
  23. None
  24. Docker • Copy-on-write (AUFS) ! ! ! !

  25. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) ! ! !

  26. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management

    (imagens) ! !
  27. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management

    (imagens) • Automatic build (Dockerfile) !
  28. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management

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

    (imagens) • Automatic build (Dockerfile) • Component re-use (FROM: image) • Sharing (dockerhub/registry)
  30. VMs vs Docker

  31. VMs vs Docker • Sobe rápido ! ! 


  32. VMs vs Docker • Sobe rápido • Padronização ! 


  33. VMs vs Docker • Sobe rápido • Padronização • Fácil

    replicação 

  34. VMs vs Docker • Sobe rápido • Padronização • Fácil

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

    replicação • Melhor utilização de recursos • Overhead de IO !
  36. 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
  37. 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
  38. Tips • Não é VM, é CONTAINER ! ! 


  39. Tips • Não é VM, é CONTAINER • Porque container

    (padrão de transporte) ! 

  40. Tips • Não é VM, é CONTAINER • Porque container

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

  41. 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)
  42. Basics • docker pull ! ! ! ! ! !

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

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

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

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

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

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

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

    quiser 
 
 
 
 
 https://docs.docker.com/machine/
  53. 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/
  54. 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/
  55. Docker Compose

  56. DOCKER COMPOSE e não composeeerrr...

  57. Docker Compose • Antigo fig.sh 
 
 
 https://docs.docker.com/compose/

  58. Docker Compose • Antigo fig.sh • Arquivo yml que descreve

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


    
 

  61. Why Compose? • Imagine que você entrou no E-Bahya •

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

  62. 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)
  63. 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
  64. None
  65. Why Compose? Como você monta o ambiente na sua máquina?

    
 
 
 
 
 
 

  66. None
  67. Why Compose? Como você monta o ambiente na sua máquina?

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

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

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

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

  71. 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
  72. Live Demo anything can go wrong now

  73. Fontes https://github.com/wsilva/meetup-laravel

  74. Q&A

  75. Slides