APLICAÇÃO DISTRIBUIDA COM
DOCKER SWARM
MEETUP GRUPY SP - DEVOPS
WHO AM I?
WELLINGTON F. SILVA
▸ AKA: wsilva | boina | tom | fisi
▸ Pai
▸ Técnico Telecom
▸ Programador
▸ Instrutor
▸ DevOps
▸ Escritor
AGENDA
▸ Virtualização
▸ Virtual Machine x Contêineres
▸ Docker
▸ Histórico
▸ Demo com Compose e Swarm
▸ Adoção do Docker
O QUE É DOCKER?
FERRAMENTA PARA
VIRTUALIZAÇÃO NO NÍVEL DO
SISTEMAS OPERACIONAL
by wsilva
O QUE É O DOCKER?
TIPOS DE VIRTUALIZAÇÃO
O QUE É O DOCKER?
TIPOS DE VIRTUALIZAÇÃO
▸ Full Virtualization
O QUE É O DOCKER?
TIPOS DE VIRTUALIZAÇÃO
▸ Full Virtualization
▸ Partial Virtualization
O QUE É O DOCKER?
TIPOS DE VIRTUALIZAÇÃO
▸ Full Virtualization
▸ Partial Virtualization
▸ Paravirtualization
O QUE É O DOCKER?
TIPOS DE VIRTUALIZAÇÃO
▸ Full Virtualization
▸ Partial Virtualization
▸ Paravirtualization
▸ OS Level Virtualization
O QUE É O DOCKER?
TIPOS DE VIRTUALIZAÇÃO
▸ Full Virtualization
▸ Partial Virtualization
▸ Paravirtualization
▸ OS Level Virtualization <= DOCKER
VMS X CONTÊINERES
SERVIDORSERVIDOR
HOST OSHOST OS
CONTAINER ENGINEHYPERVISOR
BINS/LIBSGUEST OS BINS/LIBSGUEST OS
BINS/LIBS BINS/LIBS APP APP
APP APP
VM VM
Container Container
VMs x Contêineres
SERVIDORSERVIDOR
DEBIAN LINUXDEBIAN LINUX
DOCKERVIRTUALBOX
BINS/LIBSCENTOS LINUX BINS/LIBSUBUNTU LINUX
BINS/LIBS BINS/LIBS NGINX MYSQL
NGINX MYSQL
VM VM
Container Container
VMs x Contêineres
COMO FUNCIONA?
PROCESSOS
+
KERNEL NAMESPACES
+
CGROUPS
PROCESSOS
PID=1
KERNEL NAMESPACES
(O QUE O PROCESSO PODE VER)
COMO FUNCIONA?
KERNEL NAMESPACES
▸ IPC - interprocess communication
COMO FUNCIONA?
KERNEL NAMESPACES
▸ IPC - interprocess communication
▸ PID - Processos
COMO FUNCIONA?
KERNEL NAMESPACES
▸ IPC - interprocess communication
▸ PID - Processos
▸ NET- rede
COMO FUNCIONA?
KERNEL NAMESPACES
▸ IPC - interprocess communication
▸ PID - Processos
▸ NET- rede
▸ UTS - Unix timesharing system, recursos do kernel
COMO FUNCIONA?
KERNEL NAMESPACES
▸ IPC - interprocess communication
▸ PID - Processos
▸ NET- rede
▸ UTS - Unix timesharing system, recursos do kernel
▸ USER - usuários
COMO FUNCIONA?
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
CGROUPS
(O QUE O PROCESSO PODE USAR)
COMO FUNCIONA?
CGROUPS
▸ CPU
COMO FUNCIONA?
CGROUPS
▸ CPU
▸ Memória
COMO FUNCIONA?
CGROUPS
▸ CPU
▸ Memória
▸ I/O em disco
COMO FUNCIONA?
CGROUPS
▸ CPU
▸ Memória
▸ I/O em disco
▸ Interface de rede
COMO FUNCIONA?
CGROUPS
▸ CPU
▸ Memória
▸ I/O em disco
▸ Interface de rede
▸ Hardwares periféricos (pen drive, camera, etc)
HISTÓRICO
HISTÓRICO
HISTÓRIA
▸ 21/03/2013 1ª Demo
HISTÓRICO
HISTÓRIA
▸ 21/03/2013 1ª Demo
▸ Opensource(Apache License 2.0)
HISTÓRICO
HISTÓRIA
▸ 21/03/2013 1ª Demo
▸ Opensource(Apache License 2.0)
▸ Base para dotCloud
HISTÓRICO
HISTÓRIA
▸ 21/03/2013 1ª Demo
▸ Opensource(Apache License 2.0)
▸ Base para dotCloud
▸ 23/07/2013 - Ben Golub, CEO da
Gluster e da Plaxo se une ao time
HISTÓRICO
HISTÓRIA
▸ 21/03/2013 1ª Demo
▸ Opensource(Apache License 2.0)
▸ Base para dotCloud
▸ 23/07/2013 - Ben Golub, CEO da
Gluster e da Plaxo se une ao time
▸ 22/01/2014 2º aporte de US$ 15
mi
HISTÓRICO
HISTÓRIA
▸ 23/07/2014 Compra da Orchard
(FIG)
HISTÓRICO
HISTÓRIA
▸ 23/07/2014 Compra da Orchard
(FIG)
▸ 16/09/2014 3º aporte US$ 40 mi
HISTÓRICO
HISTÓRIA
▸ 23/07/2014 Compra da Orchard
(FIG)
▸ 16/09/2014 3º aporte US$ 40 mi
▸ 15/10/2014 Microsoft anuncia
Docker no Windows 2016 sever
HISTÓRICO
HISTÓRIA
▸ 23/07/2014 Compra da Orchard
(FIG)
▸ 16/09/2014 3º aporte US$ 40 mi
▸ 15/10/2014 Microsoft anuncia
Docker no Windows 2016 sever
▸ dez/2014 compose, swarm,
machine
HISTÓRICO
HISTÓRIA
▸ 23/07/2014 Compra da Orchard
(FIG)
▸ 16/09/2014 3º aporte US$ 40 mi
▸ 15/10/2014 Microsoft anuncia
Docker no Windows 2016 sever
▸ dez/2014 compose, swarm,
machine
▸ 14/04/2015 4º aporte US$ 95 mi
HISTÓRICO
HISTÓRIA
▸ 22/06/2015 Open Container
Initiative
HISTÓRICO
HISTÓRIA
▸ 22/06/2015 Open Container
Initiative
▸ 29/02/2016 fim da dotCloud
HISTÓRICO
HISTÓRIA
▸ 22/06/2015 Open Container
Initiative
▸ 29/02/2016 fim da dotCloud
▸ 20/06/2016 Docker for Mac and
Windows
HISTÓRICO
HISTÓRIA
▸ 22/06/2015 Open Container
Initiative
▸ 29/02/2016 fim da dotCloud
▸ 20/06/2016 Docker for Mac and
Windows
▸ 28/07/2016 Docker 1.12 com
Swarmkit
E O SWARM?
E A APLIÇÃO?
PRAY FOR DEMO
GODS
https://github.com/wsilva/demo-flask-swarm
ADOÇÃO
TO BE CONTINUED…
MAIS SOBRE DOCKER
▸ https://docs.docker.com
▸ https://telegram.me/dockerbr
▸ http://docker-br.herokuapp.com
▸ https://community.docker.com
▸ http://bit.ly/curso-docker
▸ https://www.meetup.com/Docker-
Sao-Paulo/

Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)