I'm working on a project that requires deployment both on the cloud and on private virtual machines. The customer provided 4 VMs with the stipulation that the database should be on one VM, the application on others, and certain services on specific VMs.
Specifics: Single ASP.NET Core Project:
Can I achieve this deployment structure with a single ASP.NET Core Aspire project, or do I need different APP HOSTS with connections to Docker containers on different VMs?
What are the best practices for deploying different components of a system on separate VMs while ensuring efficient communication and maintainability?
Should I consider containerizing services and applications for streamlined deployment across different VMs?
Any suggestions on managing a database on a separate VM while maintaining smooth interactions with the application?
If I am wrong about any concept please feel free to correct it. I want all my services to be deployed on dockers over Windows Server.