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. 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'];
  2. 6.

    Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual

    Box, VMWare, Xen,...) • LXC • Docker • Orquestração de containers
  3. 11.

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

    é Docker • Uso Básico • Orquestração de Containers
  4. 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)
  5. 15.

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

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

  6. 16.

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

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

  7. 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
  8. 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
  9. 20.

    LXC - Linux Containers • Rodando:
 sudo lxc-start --name testando


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

  10. 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
  11. 22.
  12. 23.
  13. 28.

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

    (imagens) • Automatic build (Dockerfile) • Component re-use (FROM: image)
  14. 29.

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

    (imagens) • Automatic build (Dockerfile) • Component re-use (FROM: image) • Sharing (dockerhub/registry)
  15. 34.

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

    replicação • Melhor utilização de recursos
  16. 35.

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

    replicação • Melhor utilização de recursos • Overhead de IO !
  17. 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
  18. 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
  19. 39.
  20. 40.

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

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

  21. 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)
  22. 42.

    Basics • docker pull ! ! ! ! ! !

    Tutorial de introdução (10min): https://www.docker.com/tryit/
  23. 43.

    Basics • docker pull • docker ps ! ! !

    ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  24. 44.

    Basics • docker pull • docker ps • docker images

    ! ! ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  25. 45.

    Basics • docker pull • docker ps • docker images

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

    Basics • docker pull • docker ps • docker images

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

    Basics • docker pull • docker ps • docker images

    • docker run • docker exec • docker commit ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  28. 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/
  29. 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/
  30. 50.

    Instalation • Debian, Arch, Fedora, CentOS, AWS EC2, Mac OS

    X, Suse, Microsoft Ubuntu, Microsoft Windows, etc... 
 https://docs.docker.com/installation/#installation
  31. 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
  32. 52.

    Docker Machine • Cria uma VM com boot2docker onde você

    quiser 
 
 
 
 
 https://docs.docker.com/machine/
  33. 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/
  34. 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/
  35. 58.

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

    os microsistemas 
 
 https://docs.docker.com/compose/
  36. 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/
  37. 61.

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

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

  38. 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)
  39. 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
  40. 64.
  41. 66.
  42. 67.

    Why Compose? Como você monta o ambiente na sua máquina?

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

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

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

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

  46. 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
  47. 74.

    Q&A

  48. 75.