SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Docker Swarm
Sua aplicação pronta para escalar
$whoami
• Graduado em Engenharia de Software.

• Desenvolvedor na Asert Serviços e Tecnologia.

• Desenvolvedor na NectarCRM.

• Micro Empreendedor Individual.

• Na web @gustavomtborges.
Disclaimers
• Não irei abordar sobre como docker funciona.
(imagens, containers, volumes, docker-compose).

• Não entrarei nos internals do swarm, apenas uma
demonstração prática.
Docker Swarm
• Integrado ao docker a partir da versão 1.12.0

• Múltiplos docker hosts rodando em swarm mode.

• Cada host pode ser um manager, worker ou os dois.

• Load balancer, scaling, TLS, rollout update.
https://docs.docker.com/engine/swarm
Key Concepts
Nodes
Manager: Gerencia os nodes do cluster e delega
os services.

Worker: Recebe e executa as tasks de um service.
https://docs.docker.com/engine/swarm/key-concepts
Key Concepts
Services and Tasks
Service: Definição de tarefas a serem executadas.
Qual a imagem? quais comandos?

Replicated: Roda as tasks de acordo com o número
desejado de replicas.

Global: Roda uma task para cada node no cluster.

Task: Container e definição de comandos que irá rodar
dentro do container. A menor unidade do cluster.
https://docs.docker.com/engine/swarm/key-concepts
Administration Guide
https://docs.docker.com/engine/swarm/admin_guide
Demo
$ docker swarm init
$ docker swarm join-token manager
$ docker swarm join-token worker
$ docker node ls
$ docker swarm leave
$ docker node rm node3
$ docker node inspect node3
$ docker node promote/demote node3
Criando o cluster
Demo
$ docker service create --name webserver
--replicas 4 -p 8080:80 nginx
$ docker service ls
$ docker service ps webserver
$ docker service inspect webserver
$ docker service scale webserver=8
$ docker service logs -f webserver
$ docker service update
$ docker service rm webserver
Nosso primeiro service
Unindo os serviços
Aplicação
WebServer para proxy reverso

API REST

Banco de dados

https://github.com/gustavomtborges/goinfra-swarm-talk

Monitoring
Stack ELK

https://github.com/gustavomtborges/goinfra-swarm-monitor
Demo
$ docker stack deploy -c docker-compose.prod.yml
api
$ docker stack services api
$ docker stack deploy -c docker-compose.yml
monitor
$ docker service ls
$ docker stack rm monitor
$ docker stack rm api
Nossa primeira stack
Dicas para iniciar com docker
• Documentação do Docker.

Sempre priorize olhar a documentação para tirar dúvidas.

• Saiba o básico de network, tcp/ip.

• Saiba o básico de storage, i/o.

• Livro Docker para Desenvolvedores

https://leanpub.com/dockerparadesenvolvedores
Dicas para iniciar com docker
• Livro Descomplicando o Docker

https://www.amazon.com.br/Descomplicando-Jeferson-Fernando-Noronha-
Vitalino/dp/8574527971

• Canal LinuxTips no Youtube.

• Play with Docker

https://labs.play-with-docker.com

• Katacoda

https://www.katacoda.com/courses/docker
Referências
https://docs.docker.com/engine/swarm

Treinamento Descomplicando o Docker.
Get in touch
Twitter: @gustavomtborges

Telegram: @gustavomtborges

https://www.linkedin.com/in/gustavomtborges

https://gustavoborges.net

Mais conteúdo relacionado

Mais procurados

TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerRafael Gomes
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Wellington Silva
 
QCon 2019 - Kubernetes Deepdive
QCon 2019 -  Kubernetes DeepdiveQCon 2019 -  Kubernetes Deepdive
QCon 2019 - Kubernetes DeepdiveRicardo Katz
 
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresasDockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresasRafael Gomes
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker ContainersHugo Henley
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeRafael Benevides
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting dockerRafael Gomes
 
Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvemIgnacio Nin
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerBruno Ricardo Siqueira
 
Escalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQEscalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQMatheus Fidelis
 
Iniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e BowerIniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e BowerMateus Padua
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?Rafael Benevides
 
Otimizando sites com o nosql redis
Otimizando sites com o nosql redisOtimizando sites com o nosql redis
Otimizando sites com o nosql redisAllisson Azevedo
 
Hands on para (web)Developers Docker vs Vagrant
Hands on para (web)Developers Docker vs VagrantHands on para (web)Developers Docker vs Vagrant
Hands on para (web)Developers Docker vs VagrantIngo Jauch
 

Mais procurados (20)

TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
Workshop Docker
Workshop DockerWorkshop Docker
Workshop Docker
 
Docker volumes
Docker volumesDocker volumes
Docker volumes
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
QCon 2019 - Kubernetes Deepdive
QCon 2019 -  Kubernetes DeepdiveQCon 2019 -  Kubernetes Deepdive
QCon 2019 - Kubernetes Deepdive
 
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresasDockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting docker
 
Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvem
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Escalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQEscalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQ
 
Iniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e BowerIniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e Bower
 
Quasar framework
Quasar frameworkQuasar framework
Quasar framework
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?
 
Foreman como provisionador
Foreman como provisionadorForeman como provisionador
Foreman como provisionador
 
Otimizando sites com o nosql redis
Otimizando sites com o nosql redisOtimizando sites com o nosql redis
Otimizando sites com o nosql redis
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
Hands on para (web)Developers Docker vs Vagrant
Hands on para (web)Developers Docker vs VagrantHands on para (web)Developers Docker vs Vagrant
Hands on para (web)Developers Docker vs Vagrant
 

Semelhante a Docker Swarm: escalando aplicações

Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Wallison Marra
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginnersRafael Chiavegatto
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes Rhuan Karlus Silva
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaMatheus Fidelis
 
Dockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechDockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechRafael Gomes
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDextra Sistemas / Etec Itu
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4David Ruiz
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
Api com sql server em container
Api com sql server em containerApi com sql server em container
Api com sql server em containerThaise Dantas
 
Orquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e ComposeOrquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e ComposeRoberto Hashioka
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesRodrigo Cândido da Silva
 

Semelhante a Docker Swarm: escalando aplicações (20)

Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginners
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Olá docker
Olá dockerOlá docker
Olá docker
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
 
Ambiente de desenvolvimento com docker e ruby on rails
Ambiente de desenvolvimento com  docker e ruby on railsAmbiente de desenvolvimento com  docker e ruby on rails
Ambiente de desenvolvimento com docker e ruby on rails
 
Dockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechDockerizando aplicações em uma Fintech
Dockerizando aplicações em uma Fintech
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Docker selenium
Docker seleniumDocker selenium
Docker selenium
 
Api com sql server em container
Api com sql server em containerApi com sql server em container
Api com sql server em container
 
Orquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e ComposeOrquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e Compose
 
Docker
DockerDocker
Docker
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 

Docker Swarm: escalando aplicações

  • 1. Docker Swarm Sua aplicação pronta para escalar
  • 2. $whoami • Graduado em Engenharia de Software. • Desenvolvedor na Asert Serviços e Tecnologia. • Desenvolvedor na NectarCRM. • Micro Empreendedor Individual. • Na web @gustavomtborges.
  • 3. Disclaimers • Não irei abordar sobre como docker funciona. (imagens, containers, volumes, docker-compose). • Não entrarei nos internals do swarm, apenas uma demonstração prática.
  • 4. Docker Swarm • Integrado ao docker a partir da versão 1.12.0 • Múltiplos docker hosts rodando em swarm mode. • Cada host pode ser um manager, worker ou os dois. • Load balancer, scaling, TLS, rollout update. https://docs.docker.com/engine/swarm
  • 5. Key Concepts Nodes Manager: Gerencia os nodes do cluster e delega os services. Worker: Recebe e executa as tasks de um service. https://docs.docker.com/engine/swarm/key-concepts
  • 6. Key Concepts Services and Tasks Service: Definição de tarefas a serem executadas. Qual a imagem? quais comandos? Replicated: Roda as tasks de acordo com o número desejado de replicas. Global: Roda uma task para cada node no cluster. Task: Container e definição de comandos que irá rodar dentro do container. A menor unidade do cluster. https://docs.docker.com/engine/swarm/key-concepts
  • 8. Demo $ docker swarm init $ docker swarm join-token manager $ docker swarm join-token worker $ docker node ls $ docker swarm leave $ docker node rm node3 $ docker node inspect node3 $ docker node promote/demote node3 Criando o cluster
  • 9. Demo $ docker service create --name webserver --replicas 4 -p 8080:80 nginx $ docker service ls $ docker service ps webserver $ docker service inspect webserver $ docker service scale webserver=8 $ docker service logs -f webserver $ docker service update $ docker service rm webserver Nosso primeiro service
  • 10. Unindo os serviços Aplicação WebServer para proxy reverso API REST Banco de dados https://github.com/gustavomtborges/goinfra-swarm-talk Monitoring Stack ELK https://github.com/gustavomtborges/goinfra-swarm-monitor
  • 11. Demo $ docker stack deploy -c docker-compose.prod.yml api $ docker stack services api $ docker stack deploy -c docker-compose.yml monitor $ docker service ls $ docker stack rm monitor $ docker stack rm api Nossa primeira stack
  • 12. Dicas para iniciar com docker • Documentação do Docker.
 Sempre priorize olhar a documentação para tirar dúvidas. • Saiba o básico de network, tcp/ip. • Saiba o básico de storage, i/o. • Livro Docker para Desenvolvedores
 https://leanpub.com/dockerparadesenvolvedores
  • 13. Dicas para iniciar com docker • Livro Descomplicando o Docker
 https://www.amazon.com.br/Descomplicando-Jeferson-Fernando-Noronha- Vitalino/dp/8574527971 • Canal LinuxTips no Youtube. • Play with Docker
 https://labs.play-with-docker.com • Katacoda
 https://www.katacoda.com/courses/docker
  • 15. Get in touch Twitter: @gustavomtborges Telegram: @gustavomtborges https://www.linkedin.com/in/gustavomtborges https://gustavoborges.net