Executando verificação de segurança...
1

Dúvidas sobre primeiro deploy

Conforme fui pesquisando sobre hosteamento de aplicações web fui percebendo que os serviços sempre separam banco de servidor e de projeto estático. Necessariamente eu preciso deployar os três separadamente ou é possível deployar uma aplicação banco + servidor + site tudo em uma única máquina? Isso precisaria ser feito com o docker? Mesmo que seja possível, é recomendado? Quais as vantagens e desvantagens, considerando um projeto pessoal de pequeno porte?

Carregando publicação patrocinada...
2

O comum é hospedar separado, mas se você tiver um VPS você consegue hospedar tudo junto.

Acho que o VPS mais barato que você vai conseguir é esse aqui (mas fica na alemanha, então a latência é alta): https://alphavps.com/cheap-vps.html
Tem uma opção de VPS em são paulo um pouco mais caro: https://www.lightnode.com/en-US/speed/br-saopaulo-1

Tem soluções cloud gratuitas até um certo limite, a que mais compensa é a da oracle: https://www.oracle.com/br/cloud/free/

Agora se você quiser ter uma experiência cloud legal, fazer deploy rápido, gratuito para projetos pessoais, eu recomendo usar:

Na https://menthor.io/ nós vamos ensinar a usar a maioria dos serviços que mencionei. Espero ter ajudado!

2

Considerando um projeto pessoal de pequeno porte, é possível adotar abordagens distintas para a sua configuração. Pode utilizar uma máquina única e implementar a instalação do Docker, o que permitirá executar os três projetos em containers separados, proporcionando um maior controle e isolamento das aplicações individualmente. Com essa abordagem, cada aplicação pode ser executado em um ambiente isolado, facilitando a gestão e evitando possíveis conflitos entre eles.

Pode instalar diretamente na máquina o gestor da base de dados, as linguagens de programação e o servidor web, sem a utilização do Docker.
Isso pode ser adequada para projetos de menor escala, sendo que em grandes projetos muitas vezes requerem uma arquitetura mais complexa, onde as diversas partes da aplicação são separadas em diferentes containers, o que permite melhor escalabilidade e facilita a manutenção do projeto no longo prazo.

Caso a sua máquina precise de mais recursos, poderá instanciar mais maquinas e fazer um balancemento de carga, poderá utilizar o nginx para isso, assim é mais recomendado utilizar mais maquinas uma para cada coisa pois se precisar de fazer o balanceamento de carga de por exemplo da aplicação back-end não terá de adicionar o front-end e a base de dados a essa máquina.