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
  2. None
  3. Na minha máquina funciona… ...e no servidor também Ricardo Coelho

    @ramcoelho 21 AGO 2020
  4. Na minha empresa...

  5. Heterogeneidade

  6. None
  7. None
  8. Virtualização

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

  10. Docker

  11. MacOS ou Windows

  12. Multipass

  13. Multipass https://multipass.run/

  14. None
  15. bit.do/instdocker

  16. None
  17. fonte: devopedia.org/docker

  18. CNCF Landscape

  19. landscape.cncf.io

  20. landscape.cncf.io

  21. Docker Compose

  22. docker-compose.yml

  23. docker-compose.yml

  24. Dockerfile

  25. Case

  26. Modelo Legado: Apache + vHosts

  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
  28. Fase 1 - Containers Apache + PHP

  29. docker-compose.yml

  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)
  31. Fase 2 - Containers Nginx + PHP-FPM Gestão via Portainer

  32. docker-compose.yml

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

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

  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)
  37. Fase 3 - Reverse Proxy(ies)

  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)
  39. None
  40. Na prática

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

  42. O que vem depois

  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
  44. Obrigado! Perguntas?