O poder do Docker (7 Masters)

O poder do Docker (7 Masters)

Mini palestra e demo ministrada no 7 Masters do dia 28/07/2016, edição sobre devops.
http://setemasters.imasters.com.br/edicoes/devops/

280fecb4f048de5ecf36bec281609ea4?s=128

Wellington F. Silva

July 29, 2016
Tweet

Transcript

  1. 1.
  2. 2.

    W E L L I N G T O N

    F S I L V A Técnico Telecom, programador, DevOps,instrutor, escritor, pai…
  3. 3.

    A G E N D A • O que é

    Docker? • Como funciona? • Win vs Mac vs Linux • Exemplos de uso • Cases GFG • Adoção
  4. 9.

    • Sistemas de Containers Linux • Leve e rápido •

    Open Source O Q U E É D O C K E R ?
  5. 10.

    • Sistemas de Containers Linux • Leve e rápido •

    Open Source • Diversas ferramentas de cluster e orquestração O Q U E É D O C K E R ?
  6. 11.

    • Sistemas de Containers Linux • Leve e rápido •

    Open Source • Diversas ferramentas de cluster e orquestração • Facilita microservice O Q U E É D O C K E R ?
  7. 12.

    • Sistemas de Containers Linux • Leve e rápido •

    Open Source • Diversas ferramentas de cluster e orquestração • Facilita microservice • Facilita emprego do 12 factor O Q U E É D O C K E R ?
  8. 13.

    • Sistemas de Containers Linux • Leve e rápido •

    Open Source • Diversas ferramentas de cluster e orquestração • Facilita microservice • Facilita emprego do 12 factor • Melhora a distribuição de recursos O Q U E É D O C K E R ?
  9. 17.

    W I N D O W S V S M

    A C V S L I N U X
  10. 22.

    N G I N X W E B S E

    R V E R D E M O
  11. 23.

    C O M P O S E C O M

    S E R V I C E S D E M O
  12. 24.

    A P L I C A Ç Õ E S

    C O M G U I D E M O
  13. 25.
  14. 26.
  15. 28.

    • Resolveu problema de disputa de ambiente de homologação •

    Instalado git no servidor T I C K E T S E M Q & A C A S E S
  16. 29.

    • Resolveu problema de disputa de ambiente de homologação •

    Instalado git no servidor • Script de provision no hook post- update T I C K E T S E M Q & A C A S E S
  17. 31.

    O script: • Levantava os sistemas em container com docker-compose

    • Colocava o código do branch enviado T I C K E T S E M Q & A C A S E S
  18. 32.

    O script: • Levantava os sistemas em container com docker-compose

    • Colocava o código do branch enviado • Montava as urls com o nº do ticket (http://gfg-666.front.qa.url) T I C K E T S E M Q & A C A S E S
  19. 33.

    Para os devs: • Adicionava o server como remote (git

    remote add qa git@git.qa…) T I C K E T S E M Q & A C A S E S
  20. 34.

    Para os devs: • Adicionava o server como remote (git

    remote add qa git@git.qa…) • Para testar o branch: git push qa gfg-666 T I C K E T S E M Q & A C A S E S
  21. 35.

    Para os devs: • Adicionava o server como remote (git

    remote add qa git@git.qa…) • Para testar o branch: git push qa gfg-666 • Para remover: git push qa :gfg-666 T I C K E T S E M Q & A C A S E S
  22. 36.

    • Deploy era focado na loja (PHP) M Á Q

    U I N A D E D E P L O Y C A S E S
  23. 37.

    • Deploy era focado na loja (PHP) • Outros serviços

    em outras linguagens surgiram (python, java) M Á Q U I N A D E D E P L O Y C A S E S
  24. 38.

    • Deploy era focado na loja (PHP) • Outros serviços

    em outras linguagens surgiram (python, java) • Todas as dependências tinham que ser instaladas na máquina M Á Q U I N A D E D E P L O Y C A S E S
  25. 39.

    • Nova máquina apenas com Docker M Á Q U

    I N A D E D E P L O Y C A S E S
  26. 40.

    • Nova máquina apenas com Docker • Ant com mesmo

    target para todos projetos (ant build, ant deploy) M Á Q U I N A D E D E P L O Y C A S E S
  27. 41.

    • Nova máquina apenas com Docker • Ant com mesmo

    target para todos projetos (ant build, ant deploy) • Cada projeto implementa como será o build (java: unit test + compile + geração de .war / python e php: composer ou pip + unit test + geração de .tar.gz) M Á Q U I N A D E D E P L O Y C A S E S
  28. 42.

    • O próprio script ant se necessário sobe containers com

    banco (MySQL e Postgres) e ou cache (Memcached/ Redis) para os testes de acordo com o sistema M Á Q U I N A D E D E P L O Y C A S E S
  29. 43.

    • O próprio script ant se necessário sobe containers com

    banco (MySQL e Postgres) e ou cache (Memcached/Redis) para os testes de acordo com o sistema • Cada projeto implementa como será o deploy (java: ajuste de config e troca do .war / python e php: ajuste de configs + unit test + geração de .tar.gz) M Á Q U I N A D E D E P L O Y C A S E S
  30. 44.

    • Scripts Python montam o inventário (dinâmico, algumas máquinas na

    AWS) M Á Q U I N A D E D E P L O Y C A S E S
  31. 45.

    • Scripts Python montam o inventário (dinâmico, algumas máquinas na

    AWS) • Playbooks Ansible fazem o deploy nas instâncias, geram novas imagens e atualiza a configuração do autoscale M Á Q U I N A D E D E P L O Y C A S E S
  32. 46.

    E S T U D O D A T A

    D O G https://www.datadoghq.com/docker-adoption/
  33. 47.

    • aumento de 30% entre maio de 2015 e maio

    de 2016 E S T U D O D A T A D O G E S T U D O
  34. 48.

    • aumento de 30% entre maio de 2015 e maio

    de 2016 • maiores empresas (+500 hosts), adoção maior E S T U D O D A T A D O G E S T U D O
  35. 49.

    • aumento de 30% entre maio de 2015 e maio

    de 2016 • maiores empresas (+500 hosts), adoção maior • 2/3 dos que testam adotam E S T U D O D A T A D O G E S T U D O
  36. 50.

    • aumento de 30% entre maio de 2015 e maio

    de 2016 • maiores empresas (+500 hosts), adoção maior • 2/3 dos que testam adotam • quantidade de container quintuplica após adoção E S T U D O D A T A D O G E S T U D O
  37. 51.

    • Em média 5 containers por host E S T

    U D O D A T A D O G E S T U D O
  38. 52.

    • Em média 5 containers por host • VMs são

    6 vezes mais longevas E S T U D O D A T A D O G E S T U D O
  39. 53.

    • Em média 5 containers por host • VMs são

    6 vezes mais longevas • Imgs mais usadas: Registry, NGINX, Redis, Elasticsearch, MySQL, Logspout, Quay, etcd, Postgres, CAdvisor E S T U D O D A T A D O G E S T U D O