aplicação distribuída com docker swarm (meetup grupy-sp)

58
APLICAÇÃO DISTRIBUIDA COM DOCKER SWARM MEETUP GRUPY SP - DEVOPS

Upload: wellington-silva

Post on 15-Feb-2017

35 views

Category:

Technology


2 download

TRANSCRIPT

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

APLICAÇÃO DISTRIBUIDA COM DOCKER SWARM

MEETUP GRUPY SP - DEVOPS

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

WHO AM I?

WELLINGTON F. SILVA

▸ AKA: wsilva | boina | tom | fisi

▸ Pai

▸ Técnico Telecom

▸ Programador

▸ Instrutor

▸ DevOps

▸ Escritor

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

AGENDA

▸ Virtualização

▸ Virtual Machine x Contêineres

▸ Docker

▸ Histórico

▸ Demo com Compose e Swarm

▸ Adoção do Docker

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

O QUE É DOCKER?

Page 5: Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Page 6: Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Page 7: Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)

FERRAMENTA PARA VIRTUALIZAÇÃO NO NÍVEL DO SISTEMAS OPERACIONAL

by wsilva

O QUE É O DOCKER?

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

TIPOS DE VIRTUALIZAÇÃO

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

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

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

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

▸ Partial Virtualization

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

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

▸ Partial Virtualization

▸ Paravirtualization

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

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

▸ Partial Virtualization

▸ Paravirtualization

▸ OS Level Virtualization

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

O QUE É O DOCKER?

TIPOS DE VIRTUALIZAÇÃO

▸ Full Virtualization

▸ Partial Virtualization

▸ Paravirtualization

▸ OS Level Virtualization <= DOCKER

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

VMS X CONTÊINERES

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

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

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

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

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

COMO FUNCIONA?

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

PROCESSOS +

KERNEL NAMESPACES +

CGROUPS

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

PROCESSOS PID=1

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

KERNEL NAMESPACES (O QUE O PROCESSO PODE VER)

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

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

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

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

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

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

▸ NET- rede

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

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

▸ NET- rede

▸ UTS - Unix timesharing system, recursos do kernel

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

COMO FUNCIONA?

KERNEL NAMESPACES

▸ IPC - interprocess communication

▸ PID - Processos

▸ NET- rede

▸ UTS - Unix timesharing system, recursos do kernel

▸ USER - usuários

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

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

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

CGROUPS (O QUE O PROCESSO PODE USAR)

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

COMO FUNCIONA?

CGROUPS

▸ CPU

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

COMO FUNCIONA?

CGROUPS

▸ CPU

▸ Memória

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

COMO FUNCIONA?

CGROUPS

▸ CPU

▸ Memória

▸ I/O em disco

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

COMO FUNCIONA?

CGROUPS

▸ CPU

▸ Memória

▸ I/O em disco

▸ Interface de rede

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

COMO FUNCIONA?

CGROUPS

▸ CPU

▸ Memória

▸ I/O em disco

▸ Interface de rede

▸ Hardwares periféricos (pen drive, camera, etc)

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

HISTÓRICO

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

HISTÓRICO

HISTÓRIA

▸ 21/03/2013 1ª Demo

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

HISTÓRICO

HISTÓRIA

▸ 21/03/2013 1ª Demo

▸ Opensource(Apache License 2.0)

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

HISTÓRICO

HISTÓRIA

▸ 21/03/2013 1ª Demo

▸ Opensource(Apache License 2.0)

▸ Base para dotCloud

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

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

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

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

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

HISTÓRICO

HISTÓRIA

▸ 23/07/2014 Compra da Orchard (FIG)

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

HISTÓRICO

HISTÓRIA

▸ 23/07/2014 Compra da Orchard (FIG)

▸ 16/09/2014 3º aporte US$ 40 mi

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

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

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

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

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

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

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

HISTÓRICO

HISTÓRIA

▸ 22/06/2015 Open Container Initiative

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

HISTÓRICO

HISTÓRIA

▸ 22/06/2015 Open Container Initiative

▸ 29/02/2016 fim da dotCloud

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

HISTÓRICO

HISTÓRIA

▸ 22/06/2015 Open Container Initiative

▸ 29/02/2016 fim da dotCloud

▸ 20/06/2016 Docker for Mac and Windows

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

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

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

E O SWARM?

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

E A APLIÇÃO?

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

PRAY FOR DEMO GODShttps://github.com/wsilva/demo-flask-swarm

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

ADOÇÃO

Page 53: Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Page 54: Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Page 55: Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Page 56: Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Page 57: Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Page 58: Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)

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/