- Estrutura (VMs vs Docker)
- Não precisa criar 3 VMs (teste, produção e banco) só para isso.
- O caminho mais prático e atual é 1 servidor físico/VM e dentro dele contêineres Docker separados (exemplo: web-app, db, nginx ou reverse-proxy).
- Para separar ambientes (teste x produção), você pode:
- Usar docker-compose com diferentes arquivos (docker-compose.test.yml, docker-compose.prod.yml),
- ou usar namespaces/labels diferentes no Kubernetes (se quiser escalar depois).
- Sincronização com Git
- Você não precisa “puxar manualmente” o código de cada dev.
- O fluxo correto é:
- Devs fazem push para o repositório Git (GitHub/GitLab/Bitbucket).
- O servidor (teste/prod) faz o deploy automático a partir da branch definida.
- Ambiente de teste → branch develop.
- Produção → branch main/master.
- Para automatizar: use CI/CD (GitLab CI, GitHub Actions, Jenkins, etc.).
- Fluxo do site (teste → produção)
- Ambiente de teste:
- O site roda no container e fica acessível via endereço do servidor (exemplo: http://ip-servidor:porta ou https://teste.suaempresa.com).
- Os devs testam nesse ambiente antes do deploy final.
- Produção:
- Após validar no teste, o pipeline faz deploy para o ambiente de produção.
- Nesse momento, o site fica disponível no domínio real da empresa (https://intranet.suaempresa.com).