Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Docker 1.12 - Swarm Mode

1,661 views

Published on

News of Docker 1.12

Published in: Technology

Docker 1.12 - Swarm Mode

  1. 1. Docker 1.12 - Swarm Rafael Gomes
  2. 2. Quem sou eu Rafael Gomes: ● Soteropolitano ● Apaixonado por compartilhamento ● Consultor na Thoughtworks ● Docker Captain ● Blog: techfree.com.br ● Twitter/github: @gomex ● Áreas de interesse/foco: ○ Cultura DevOps ○ Cloud ○ Entrega contínua ○ Automação de infraestrutura ○ Teste de infraestrutura ○ Monitoramento
  3. 3. O que estou fazendo de relevante agora Livro: http://tinyurl.com/docker-devel ● Pague quanto quiser, inclusive nada ● Não precisa saber nada de Docker ● Licenciado com Creative Commons
  4. 4. Docker! Tá tranquilo? Vamos precisar de um conhecimento básico
  5. 5. O que há de novo? Bastante coisa! :)
  6. 6. Swarm mode
  7. 7. O que é o Swarm?
  8. 8. Como era criar um cluster Swarm Instalar docker para manager Engine Iniciar swarm manager container Instalar consul Instalar docker para manager Engine Iniciar swarm worker container Join do worker
  9. 9. Swarm mode Como é agora?
  10. 10. Swarm Mode # docker swarm init Engine
  11. 11. Swarm Mode # docker swarm join ipmanager manager worker
  12. 12. Docker service # docker service create --replicas 3 -- name web --network my_net nginx:latest manager worker worker my_net
  13. 13. Docker service # docker service create --replicas 2 --name redis --network my_net redis:latest manager worker worker my_net
  14. 14. Falha de node # docker service create --replicas 2 --name redis --network my_net redis:latest manager worker worker my_net X
  15. 15. Falha de node # docker service create --replicas 2 --name redis --network my_net redis:latest manager worker my_net
  16. 16. Healthcheck HEALTHCHECK --interval=5m --timeout=3s CMD curl -f http://localhost/ || exit 1 Erros ● 0 - Sucesso ● 1 - Com problemas ● 2 - Iniciando novamente
  17. 17. worker2 Manutenção de node # docker node update --availability drain worker2 manager worker1 my_net
  18. 18. worker2 Manutenção de node # docker node update --availability drain worker2 manager worker1 my_net X
  19. 19. worker Escalando # docker service scale redis=3 manager worker my_net
  20. 20. worker Serviços globais # docker service create --mode global -- name datadog datadog/dd-agent manager worker my_net
  21. 21. worker Escolhendo nodes # docker service create --name mysql -- constrain storage="ssd" mysql manager worker my_net worker worker docker daemon --label storage="ssd"
  22. 22. worker Escolhendo nodes manager worker my_net worker worker docker daemon --label storage="ssd" # docker service scale mysql=3
  23. 23. Serviços serviço task task task container container unikernel???
  24. 24. Serviços redis redis.1 redis.2 redis.3 redis:latest redis:latest redis:latest
  25. 25. Criando um serviço redis redis.1 redis.2 redis.3 redis:latest redis:latest redis:latest # docker service create --name redis --replicas 3 redis:latest
  26. 26. Listando serviços redis redis.1 redis.2 redis.3 redis:latest redis:latest redis:latest # docker service ls
  27. 27. Mais informações sobre serviço redis redis.1 redis.2 redis.3 redis:latest redis:latest redis:latest # docker service inspect --pretty redis
  28. 28. Deletando serviço redis redis.1 redis.2 redis.3 redis:latest redis:latest redis:latest # docker service rm redis
  29. 29. Atualizando a aplicação redis redis.1 redis.2 redis.3 redis:latest redis:latest redis:latest # docker service create --replicas 3 --name redis --update-delay 10s -- update-parallelism 1 redis:3.0.6 --update-delay : Tempo entre atualização de um container e outro --update-parallelism: Quanto containers serão atualizados ao mesmo tempo
  30. 30. Atualizando a aplicação redis redis.1 redis.2 redis.3 redis:latest redis:latest redis:latest # docker service update --image redis:3.0.7 redis --update-delay : Tempo entre atualização de um container e outro --update-parallelism: Quanto containers serão atualizados ao mesmo tempo
  31. 31. Stack redis redis.1 redis.2 redis.3 redis:latest redis:latest redis:latest
  32. 32. DAB (Distributed Application Bundle) nginx redis datadog mysql EXPERIMENTAL
  33. 33. Criando um cluster na sua máquina # docker swarm init --listen-addr $(docker-machine ip manager):2377 # docker-machine create -d virtualbox manager # docker $(docker-machine config worker) swarm join $(docker-machine ip manager) # docker-machine create -d virtualbox worker1 # eval $(docker-machine env manager) # docker node ls
  34. 34. Docker Beta AWS
  35. 35. O convite!
  36. 36. Iniciando o cluster
  37. 37. O que é criado com isso?
  38. 38. Acessando o gerenciamento # ssh root@test-1-ELB-47393902.us.west-1.elb.amazonaws.com # docker node ls
  39. 39. Iniciando serviços # docker service create --name web -p 80:80/tcp nginx # curl http://test-2-ELB-dd93902.us.west-1.elb.amazonaws.com
  40. 40. Aumentando o número de nodes
  41. 41. ● Enviar dados para o cloudwatch? AWS Beta Possibilidades futuras ● Integrações automatizada com outros serviços ● Autoscalling por padrão
  42. 42. AWS Beta Observações: ● Ainda está em Beta (ou seja, não use em prod) ● A integração do Docker com AWS é sem custo, mas você ainda pode ser cobrado pelo uso dos recursos da AWS
  43. 43. Interessado em testar? https://beta.docker.com
  44. 44. Dúvidas?
  45. 45. Rafael Gomes: twitter.com/gomex rgomes@thoughtworks.com twitter.com/thoughtworks_pt Obrigado!

×