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

Webinar Train'hacker #1 Darkmira Aplicações dis...

Webinar Train'hacker #1 Darkmira Aplicações distribuídas com Docker Swarm

Palestra apresentada dia 07/02/2017 que introduz o que é o Docker e como ele se posiciona em comparação com as tradicionais maquinas virtuais, tem como principal intenção mostrar como uma aplicação pode ser levada de um ambiente local para um cluster de máquinas Docker usando somente o arquivo docker-compose.yml. O demo está disponível no GitHub em https://github.com/wsilva/train-hacker-docker-webinar

Wellington F. Silva

February 07, 2017
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. AGENDA • Tipos de Virtualizações • Contêiner não é VM

    • O que é Docker • A aplicação • Docker Compose • Docker Swarm
  2. DISCLAIMER • Vamos mostrar como portar uma aplicação do ambiente

    de desenvolvimento para um ambiente em cluster • Apesar de o Swarm ser "production ready" RECOMENDAMOS alguns cuidados como teste contínuos de segurança, centralização de log, automatização de builds e alertas entre outros em ambientes de produção
  3. TIPOS DE VIRTUALIZAÇÃO • Full Virtualization • Partial Virtualization •

    Paravirtualization • OS Level Virtualization Docker
  4. SERVIDOR SERVIDOR HOST OS HOST OS CONTAINER ENGINE HYPERVISOR BINS/LIBS

    GUEST OS BINS/LIBS GUEST OS BINS/LIBS BINS/LIBS APP APP APP APP VM VM Container Container CONTÊINER vs VM
  5. SERVIDOR XEN UBUNTU LINUX DOCKER ENGINE BINS/LIBS MYSQL DEBIAN LINUX

    BINS/LIBS NGINX BINS/LIBS PHP-FPM DOCKER ENGINE WINDOWS 2016 SERVER BINS/LIBS SQL SERVER DIFERENTES MAS NÃO EXCLUSIVOS
  6. PROCESSOS • Processo Linux com PID atribuído • Pode ser

    listados dentro do contêiner ou no host
  7. PROCESSOS • Processo Linux com PID atribuído • Pode ser

    listados dentro do contêiner ou no host • Dentro do container o PID=1
  8. KERNEL NAMESPACES • IPC - interprocess communication • PID -

    Processos • NET- rede • UTS - Unix timesharing system, recursos do kernel
  9. KERNEL NAMESPACES • IPC - interprocess communication • PID -

    Processos • NET- rede • UTS - Unix timesharing system, recursos do kernel • USER - usuários
  10. KERNEL NAMESPACES • IPC - interprocess communication • PID -

    Processos • NET- rede • UTS - Unix timesharing system, recursos do kernel • USER - usuários • MNT - filesystem e pontos de montagem
  11. CGROUPS • CPU • Memória • I/O em disco •

    Interface de rede • Hardwares periféricos 
 (pen drives, cameras, etc)
  12. COMPOSE • Facilita montar ambientes de desenvolvimento complexos • Evolução

    do FIG (da Orchard) • Inspirado no Vagrant 
 [fig|docker-compose|vagrant] up
  13. COMPOSE • Facilita montar ambientes de desenvolvimento complexos • Evolução

    do FIG (da Orchard) • Inspirado no Vagrant 
 [fig|docker-compose|vagrant] up • Um arquivo de configuração para toda a stack (fig.yml|docker-compose.yml)
  14. COMPOSE • Facilita montar ambientes de desenvolvimento complexos • Evolução

    do FIG (da Orchard) • Inspirado no Vagrant 
 [fig|docker-compose|vagrant] up • Um arquivo de configuração para toda a stack (fig.yml|docker-compose.yml) • Um comando para levantar o ambiente
  15. MACHINE • Facilita criação e utilização de VMs rodando Docker

    tanto local quanto em nuvens • Cópia evoluída do Boot2docker CLI
  16. MACHINE • Facilita criação e utilização de VMs rodando Docker

    tanto local quanto em nuvens • Cópia evoluída do Boot2docker CLI • Local usa o Boot2docker ou RancherOS
  17. MACHINE • Facilita criação e utilização de VMs rodando Docker

    tanto local quanto em nuvens. • Cópia evoluída do Boot2docker CLI • Local usa o Boot2docker ou RancherOS • Drivers para VMWare Fusion, VirtualBox, Google Cloud, AWS, DigitalOcean, …
  18. SWARM • Agrega máquinas rodando Docker em um cluster •

    Tolerante a falha e alta disponibilidade
  19. SWARM • Agrega máquinas rodando Docker em um cluster •

    Tolerante a falha e alta disponibilidade • Automático mas flexível ao fazer o schedule de contêineres
  20. SWARM • Agrega máquinas rodando Docker em um cluster •

    Tolerante a falha e alta disponibilidade • Automático mas flexível ao fazer o schedule de contêineres • Permite utilizar Scheduler e Service Discovery de terceiros
  21. SWARM • Agrega máquinas rodando Docker em um cluster •

    Tolerante a falha e alta disponibilidade • Automático mas flexível ao fazer o schedule de contêineres • Permite utilizar Scheduler e Service Discovery de terceiros • Built in no Docker desde a versão 1.12