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

Na minha máquina funciona...e no servidor também

Na minha máquina funciona...e no servidor também

Se você já sofreu com deploy, esta apresentação é pra você. Nosso público-alvo são os desenvolvedores que gostam de fazer as coisas só uma vez.
Imagine um mundo em que você pode desenvolver sua aplicação diretamente no servidor, testando tudo em produção. E quando finalmente a coisa funcionar, você não tenha que se preocupar em jogar tudo em outra máquina, correndo o risco de emperrar o deploy por causa de alguma configuração diferente.
Este mundo existe no universo dos containers.

Mostramos como unificar as configurações do servidor e da máquina de desenvolvimento usando Docker e Docker Compose, para que todas as dependências de bibliotecas, ferramentas de linha de comando e até mesmo versões e distribuições do sistema operacional sejam exatamente as mesmas. Diga adeus ao deploy Kinder Ovo, que sempre vem com surpresa.

Tudo que dissermos neste tutorial pode e será usado a seu favor quando for usar Kubernetes.

Ricardo Coelho

August 21, 2020
Tweet

More Decks by Ricardo Coelho

Other Decks in Technology

Transcript

  1. Na minha máquina funciona…
    ...e no servidor também
    Ricardo Coelho @ramcoelho
    21
    AGO
    2020

    View Slide

  2. View Slide

  3. Na minha máquina funciona…
    ...e no servidor também
    Ricardo Coelho @ramcoelho
    21
    AGO
    2020

    View Slide

  4. Na minha empresa...

    View Slide

  5. Heterogeneidade

    View Slide

  6. View Slide

  7. View Slide

  8. Virtualização

    View Slide

  9. fonte: www.upguard.com/blog/docker-vs-vmware-how-do-they-stack-up

    View Slide

  10. Docker

    View Slide

  11. MacOS ou Windows

    View Slide

  12. Multipass

    View Slide

  13. Multipass
    https://multipass.run/

    View Slide

  14. View Slide

  15. bit.do/instdocker

    View Slide

  16. View Slide

  17. fonte: devopedia.org/docker

    View Slide

  18. CNCF Landscape

    View Slide

  19. landscape.cncf.io

    View Slide

  20. landscape.cncf.io

    View Slide

  21. Docker Compose

    View Slide

  22. docker-compose.yml

    View Slide

  23. docker-compose.yml

    View Slide

  24. Dockerfile

    View Slide

  25. Case

    View Slide

  26. Modelo Legado: Apache + vHosts

    View Slide

  27. Apache + vHosts (dificuldades)

    Configuração centralizada

    Manutenção de uma aplicação implica em downtime de todas

    Uso de múltiplas versões de PHP requer configurações complexas

    Erro na configuração de um vHost impede a execução de todos

    Atualizações do ambiente afetam todas as aplicações, resultando em
    quebras não planejadas ou atraso na aplicação de patches de
    segurança

    View Slide

  28. Fase 1 - Containers Apache + PHP

    View Slide

  29. docker-compose.yml

    View Slide

  30. Prós

    Resolve todos os problemas do modelo vHost
    Contras

    Modelo extremamente custoso em termos de memória e
    processador

    Monitoramento dos logs é complexo

    Gestão de certificados SSL é administrativamente custosa
    Containers Apache + PHP (avaliação)

    View Slide

  31. Fase 2 - Containers Nginx + PHP-FPM
    Gestão via Portainer

    View Slide

  32. docker-compose.yml

    View Slide

  33. View Slide

  34. fonte: help.dreamhost.com/hc/en-us/articles/215945987-Web-server-performance-comparison

    View Slide

  35. fonte: help.dreamhost.com/hc/en-us/articles/215945987-Web-server-performance-comparison

    View Slide

  36. Prós

    Resolve todos os problemas do modelo vHost

    Melhora sensivelmente o uso de memória e processador

    Portainer resolve o problema do monitoramento
    Contras

    Migração Apache

    Nginx tem curva íngreme

    Gestão de certificados SSL ainda é administrativamente custosa
    Containers Nginx + PHP-FPM (avaliação)

    View Slide

  37. Fase 3 - Reverse Proxy(ies)

    View Slide

  38. Prós

    Todos os benefícios anteriores

    Resolve a gestão de certificados SSL
    Contras

    Demanda redundância de proxies reversos para evitar ponto único
    de falhas
    Reverse Proxy (avaliação)

    View Slide

  39. View Slide

  40. Na prática

    View Slide

  41. github.com/ramcoelho/docker-stack-skel

    View Slide

  42. O que vem depois

    View Slide

  43. Profissionalizar

    Build Automation (colocar o fonte dentro da imagem)

    Esteira CI/CD com Container(s) Jenkins
    Crescer

    Docker Swarm para fugir das Stacks isoladas

    Kubernetes para atender modelos ainda mais complexos, como
    ambientes vendor agnostic ou multicloud
    Escalar

    Rancher / OpenShift

    View Slide

  44. Obrigado! Perguntas?

    View Slide