$30 off During Our Annual Pro Sale. View Details »

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. O P O D E R D O D O C K E R

    View Slide

  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…

    View Slide

  3. A G E N D A
    • O que é Docker?
    • Como funciona?
    • Win vs Mac vs
    Linux
    • Exemplos de uso
    • Cases GFG
    • Adoção

    View Slide

  4. O Q U E É D O C K E R ?

    View Slide

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

    View Slide

  6. O Q U E É D O C K E R ?

    View Slide

  7. • Sistemas de
    Containers Linux
    O Q U E É D O C K E R ?

    View Slide

  8. • Sistemas de
    Containers Linux
    • Leve e rápido
    O Q U E É D O C K E R ?

    View Slide

  9. • Sistemas de
    Containers Linux
    • Leve e rápido
    • Open Source
    O Q U E É D O C K E R ?

    View Slide

  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 ?

    View Slide

  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 ?

    View Slide

  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 ?

    View Slide

  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 ?

    View Slide

  14. C O M O F U N C I O N A ?

    View Slide

  15. C O M O F U N C I O N A ?

    View Slide

  16. C O M O F U N C I O N A ?

    View Slide

  17. W I N D O W S V S M A C V S
    L I N U X

    View Slide

  18. C O M O F U N C I O N A ?

    View Slide

  19. C O M O F U N C I O N A ?

    View Slide

  20. C O M O F U N C I O N A ?

    View Slide

  21. E X E M P L O S D E U S O

    View Slide

  22. N G I N X W E B S E R V E R
    D E M O

    View Slide

  23. C O M P O S E C O M S E R V I C E S
    D E M O

    View Slide

  24. A P L I C A Ç Õ E S C O M G U I
    D E M O

    View Slide

  25. D O C K E R C R A F T
    D E M O

    View Slide

  26. C A S E S

    View Slide

  27. • Resolveu problema de disputa de
    ambiente de homologação
    T I C K E T S E M Q & A
    C A S E S

    View Slide

  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

    View Slide

  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

    View Slide

  30. O script:
    • Levantava os sistemas em container
    com docker-compose
    T I C K E T S E M Q & A
    C A S E S

    View Slide

  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

    View Slide

  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

    View Slide

  33. 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

    View Slide

  34. 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

    View Slide

  35. 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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  46. E S T U D O D A T A D O G
    https://www.datadoghq.com/docker-adoption/

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  54. • https://telegram.me/dockerbr
    • http://docker-br.herokuapp.com/
    • http://bit.ly/curso-docker
    M A I S S O B R E D O C K E R
    O B R I G A D O

    View Slide