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

Orquestração de contêineres Docker usando Swarm (Meetup Devops Campinas)

Orquestração de contêineres Docker usando Swarm (Meetup Devops Campinas)

Palestra apresentada dia 05 de julho de 2017 no meetup de DevOps de Campinas realizado no salão da Superlógica. Mostramos alguns conceitos de orquestração de contêineres, mostramos alguns dos orquestradores mais utilizados no momento, demostramos como montar, como colocar serviços para rodar e como funcionam as principais funcionalidades do Swarm mode.

Wellington F. Silva

July 05, 2017
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. Wellington F. Silva contato: @_wsilva nicks: wsilva, boina, tom, fisi

    funções: pai, tec. telecom, programador, instrutor, escritor
  2. Agenda • Fluxo básico de trabalho com Docker • Problemas

    comuns em Produção • Orquestração • Revisitando conceitos • Alguns orquestradores • Docker Swarm (ou Swarm mode)
  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
  5. Diferentes, não excludentes 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
  6. Fluxo básico de trabalho com Docker Client Docker Host docker

    run redis docker daemon Contêineres Imagens Registry
  7. Fluxo básico de trabalho com Docker Client Docker Host docker

    run redis docker daemon Contêineres Imagens Registry
  8. Fluxo básico de trabalho com Docker Client Docker Host docker

    run redis docker daemon Contêineres Imagens Registry
  9. Fluxo básico de trabalho com Docker Client Docker Host docker

    run redis docker daemon Contêineres Imagens Registry
  10. Fluxo básico de trabalho com Docker Client Docker Host docker

    run redis docker daemon Contêineres Imagens Registry
  11. ORQUESTRAÇÃO Dicionário Oxford: 2. the planning or coordination of the

    elements of a situation to produce a desired effect especially surreptitiously
  12. ORQUESTRAÇÃO Dicionário Oxford: 2. the planning or coordination of the

    elements of a situation to produce a desired effect especially surreptitiously Tradução: O planejamento ou a coordenação dos elementos de uma situação para produzir um efeito desejado, especialmente evitando chamar atenção
  13. ORQUESTRAÇÃO Dicionário Oxford: 2. the planning or coordination of the

    elements of a situation to produce a desired effect especially surreptitiously Tradução: O planejamento ou a coordenação dos elementos de uma situação para produzir um efeito desejado, especialmente evitando chamar atenção
  14. Orquestração
 (efeitos desejados) • Aplicação rodando • Escalabilidade automática •

    Tolerante a falha (failover, rebalanceamento, health checks, etc) • Melhor utilização de recursos • Minimizar intervenção manual
  15. Docker Swarm (contextualizando) • Criado e gerido pela Docker Inc

    • Lançado em junho de 2015, beta e dependente de service discovery externo • Incorporado ao engine do Docker na versão 1.12 (28/07/2016) - pronto para produção - Swarm Mode
  16. • Workers - instâncias que rodam contêineres e reportam os

    estados deles • Managers - instâncias que decidem onde e como contêineres devem ser executados Swarm mode (Topologia)
  17. • Workers - instâncias que rodam contêineres e reportam os

    estados deles • Managers - instâncias que decidem onde e como contêineres devem ser executados • Mantém o desired state dos serviços Swarm mode (Topologia)
  18. • Workers - instâncias que rodam contêineres e reportam os

    estados deles • Managers - instâncias que decidem onde e como contêineres devem ser executados • Mantém o desired state dos serviços • Podem receber contêineres também Swarm mode (Topologia)
  19. Swarm mode (Topologia) Manager (líder) Worker Worker Worker Worker Worker

    Scheduler Service Discovery Manager Scheduler Service Discovery Manager Scheduler Service Discovery raft - consensus
  20. • Managers compartilham dados via raft • Se o líder

    falhar outro manager assume Swarm mode (HA)
  21. • Managers compartilham dados via raft • Se o líder

    falhar outro manager assume • Devemos manter o quorum (n/2+1) Swarm mode (HA)
  22. Swarm mode (Quorum) Qtde managers Quorum Qtde falhas 1 1

    0 2 2 0 3 2 1 4 3 1 5 3 2 6 4 2 7 4 3
  23. Swarm mode (features) • Scheduler focado em HA • Scheduler

    com conhecimento de topologia $ docker node update --label-add az=sa- east-1 node-xpto $ docker service create --placement- pref 'spread=node.label.az' demo
  24. Swarm mode (features) • Encriptação TLS ponta a ponta entre

    todos os nós e com rotação automática de chaves
  25. Swarm mode (features) • Encriptação TLS ponta a ponta entre

    todos os nós e com rotação automática de chaves • As chaves podem ser encriptadas usando a função autolock
  26. Swarm mode (features) • Encriptação TLS ponta a ponta entre

    todos os nós e com rotação automática de chaves • As chaves podem ser encriptadas usando a função autolock $ docker swarm init --autolock
  27. Swarm mode (features) • Permite gerencia de secrets - gravada

    no tmpfs e montado nos contêineres do serviço que vai utilizar o secret
  28. Swarm mode (features) • Permite gerencia de secrets - gravada

    no tmpfs e montado nos contêineres do serviço que vai utilizar o secret $ echo "senha" | docker secret create senha-db - $ docker service update --secret- add=senha-db demo
  29. Swarm mode (features) • Permite gerencia de configs - da

    mesma maneira que o secret $ echo "teste" | docker config create config-app - $ docker service update --config- add=config-app demo
  30. Swarm mode (features) • Permite fazer health check de serviços,

    dentro dos contêineres • Permite controle do update da aplicação
  31. Swarm mode (features) • Permite fazer health check de serviços,

    dentro dos contêineres • Permite controle do update da aplicação
 --update-parallelism --update-order 
 --update- monitor --update-delay
 --update-max-failure-ratio
  32. Swarm mode (features) • Permite controle do rollback da aplicação


    --update-failure-action=rollback 
 docker service update --rollback
 --rollback-parallelism 
 --rollback-order --rollback-monitor 
 --rollback-max-failure-ratio 
 --rollback-failure-action 
 --rollback-delay
  33. Grato 
 Próximos Passos: • Curso: 
 http://bit.ly/curso-docker • Telegram:

    
 http://t.me/dockerbr • Slacks:
 http://bit.ly/docker-slack
 http://dockr.ly/community • Meetup:
 http://bit.ly/meetup- docker-sp