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

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/

Wellington F. Silva

July 29, 2016
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. W E L L I N G T O N

    F S I L V A Técnico Telecom, programador, DevOps,instrutor, escritor, pai…
  2. A G E N D A • O que é

    Docker? • Como funciona? • Win vs Mac vs Linux • Exemplos de uso • Cases GFG • Adoção
  3. • Sistemas de Containers Linux • Leve e rápido •

    Open Source O Q U E É D O C K E R ?
  4. • 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 ?
  5. • 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 ?
  6. • 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 ?
  7. • 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 ?
  8. W I N D O W S V S M

    A C V S L I N U X
  9. N G I N X W E B S E

    R V E R D E M O
  10. C O M P O S E C O M

    S E R V I C E S D E M O
  11. A P L I C A Ç Õ E S

    C O M G U I D E M O
  12. • 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
  13. • 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
  14. 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
  15. 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
  16. Para os devs: • Adicionava o server como remote (git

    remote add qa [email protected]…) T I C K E T S E M Q & A C A S E S
  17. Para os devs: • Adicionava o server como remote (git

    remote add qa [email protected]…) • 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
  18. Para os devs: • Adicionava o server como remote (git

    remote add qa [email protected]…) • 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
  19. • 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
  20. • 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
  21. • 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
  22. • 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
  23. • 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
  24. • 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
  25. • 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
  26. • 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
  27. • 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
  28. • 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
  29. E S T U D O D A T A

    D O G https://www.datadoghq.com/docker-adoption/
  30. • 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
  31. • 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
  32. • 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
  33. • 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
  34. • 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
  35. • 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
  36. • 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