Talk no Meetup LaravelSP #3

350 visualizações

Publicada em

Talk presented at Meetup Laravel SP #3 about docker from basics to docker orchestration.
Presented in 2015-05-07

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

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
350
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
19
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Talk no Meetup LaravelSP #3

  1. 1. Docker do básico à orquestração de containers Meetup de Laravel em São Paulo #3
  2. 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. 3. Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual Box, VMWare, Xen,...) ! !
  4. 4. Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual Box, VMWare, Xen,...) • LXC !
  5. 5. Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual Box, VMWare, Xen,...) • LXC • Docker
  6. 6. Quick Research Já ouviu falar sobre: • Virtualização (Vagrant, Virtual Box, VMWare, Xen,...) • LXC • Docker • Orquestração de containers
  7. 7. Overview
  8. 8. Overview • Virtualization, LXC, VMs vs Containers ! !
  9. 9. Overview • Virtualization, LXC, VMs vs Containers • O que é Docker !
  10. 10. Overview • Virtualization, LXC, VMs vs Containers • O que é Docker • Uso Básico
  11. 11. Overview • Virtualization, LXC, VMs vs Containers • O que é Docker • Uso Básico • Orquestração de Containers
  12. 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. 13. LXC - Linux Containers • Isolamento de processo (chroot) ! ! ! 
 

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

  15. 15. LXC - Linux Containers • Isolamento de processo (chroot) • Isolamento de rede • Limitação de memória ! 
 

  16. 16. LXC - Linux Containers • Isolamento de processo (chroot) • Isolamento de rede • Limitação de memória • Isolamento de File System 
 

  17. 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. 18. LXC - Linux Containers • Instalando LXC: 
 sudo apt-get install lxc 
 
 

  19. 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. 20. LXC - Linux Containers • Rodando:
 sudo lxc-start --name testando
 udhcpc: SIOCGIFINDEX: No such device
 Please press Enter to activate this console.
 / 

  21. 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. 22. Docker • Copy-on-write (AUFS) ! ! ! !
  23. 23. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) ! ! !
  24. 24. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management (imagens) ! !
  25. 25. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management (imagens) • Automatic build (Dockerfile) !
  26. 26. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management (imagens) • Automatic build (Dockerfile) • Component re-use (FROM: image)
  27. 27. Docker • Copy-on-write (AUFS) • Logging (stdout/stderr/stdin) • Change management (imagens) • Automatic build (Dockerfile) • Component re-use (FROM: image) • Sharing (dockerhub/registry)
  28. 28. VMs vs Docker
  29. 29. VMs vs Docker • Sobe rápido ! ! 

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

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

  32. 32. VMs vs Docker • Sobe rápido • Padronização • Fácil replicação • Melhor utilização de recursos
  33. 33. VMs vs Docker • Sobe rápido • Padronização • Fácil replicação • Melhor utilização de recursos • Overhead de IO !
  34. 34. 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
  35. 35. 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
  36. 36. Tips • Não é VM, é CONTAINER ! ! 

  37. 37. Tips • Não é VM, é CONTAINER • Porque container (padrão de transporte) ! 

  38. 38. Tips • Não é VM, é CONTAINER • Porque container (padrão de transporte) • Conceito de Guest e Host, também vale. 

  39. 39. 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)
  40. 40. Basics • docker pull ! ! ! ! ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  41. 41. Basics • docker pull • docker ps ! ! ! ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  42. 42. Basics • docker pull • docker ps • docker images ! ! ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  43. 43. Basics • docker pull • docker ps • docker images • docker run ! ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  44. 44. Basics • docker pull • docker ps • docker images • docker run • docker exec ! ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  45. 45. Basics • docker pull • docker ps • docker images • docker run • docker exec • docker commit ! Tutorial de introdução (10min): https://www.docker.com/tryit/
  46. 46. 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/
  47. 47. 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/
  48. 48. Instalation • Debian, Arch, Fedora, CentOS, AWS EC2, Mac OS X, Suse, Microsoft Ubuntu, Microsoft Windows, etc... 
 https://docs.docker.com/installation/#installation
  49. 49. 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
  50. 50. Docker Machine • Cria uma VM com boot2docker onde você quiser 
 
 
 
 
 https://docs.docker.com/machine/
  51. 51. 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/
  52. 52. 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/
  53. 53. Docker Compose
  54. 54. DOCKER COMPOSE e não composeeerrr...
  55. 55. Docker Compose • Antigo fig.sh 
 
 
 https://docs.docker.com/compose/
  56. 56. Docker Compose • Antigo fig.sh • Arquivo yml que descreve os microsistemas 
 
 https://docs.docker.com/compose/
  57. 57. 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/
  58. 58. Why Compose? • Imagine que você entrou no E-Bahya 
 
 

  59. 59. Why Compose? • Imagine que você entrou no E-Bahya • Maior e-commerce da África Latina com trocentos acessos por minutos 
 

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

  63. 63. Why Compose? Como você monta o ambiente na sua máquina? a) vou instalando os pacotes: do banco, nginx / apache, etc
 
 
 
 
 
 

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

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

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

  67. 67. 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
  68. 68. Live Demo anything can go wrong now
  69. 69. Fontes https://github.com/wsilva/meetup-laravel
  70. 70. Q&A
  71. 71. Slides

×