I need to setup application (docker containers) for our application. For now I have three sub application. Public frontend, admin frontend and backend APIs. Also I have three environment dev, QA, UAT. And three dedicated server (non-cloud). So current setup (by previous lead) is divided infrastructure app wise So
- Server 1 has public frontend dev setup
- Server 2 has admin frontend dev setup
- Server 3 has backend APIs dev setup
I need to add QA and UAT environment also. So I have two choices, First continue with current structure like
- Server 1 running public frontend for all three dev/QA/UAT environments
- Server 2 running admin frontend for all three dev/QA/UAT environments
- Server 3 running backend apis for all three dev/QA/UAT environments
Or re-Setup servers environment wise.
- Server 1 running dev environment for public frontend, admin frontend and backend APIs
- Server 2 running QA environment for public frontend, admin frontend and backend APIs
- Server 3 running UAT environment for public frontend, admin frontend and backend APIs
I am inclined to use second approach. But not sure deploy frontend and backend on same server is good idea.
In future we have plan to use kubernetes (without cloud), So more nodes for each environment/app could be added.
What is the recommended practice to setup these servers?