This is quite common in the development of an enterprise and in a practically de facto standard way of doing something.
As a rule, the developer works locally. Once he / she is happy with his changes, they will push him to the version control system.
From this point on, there are several options, ranging from an automated building to ending with someone clicking a button to trigger a remote assembly.
Once the build is complete, there are many options for deploying the application to one or more other servers. And yet other options for running automatic test suites.
As far as remote debugging is concerned, you can do this regardless of whether you use the build / deploy / auto test process. This is just a question of how to properly install and configure the necessary parameters (see Ho1 answer for a link).
All that has been said, I highly recommend that you never enable remote debugging on the production server. Some people may disagree with me, but I personally consider it dangerous for security reasons and, of course, can lead to the site being disabled.
Finally, the only reasons you need a virtual machine are: servers are unavailable or if you just want to isolate everything.
Notme source share