Sure is possible.
The idea with the vpn sounds like a good idea. If you can set up a dns server that works over the vpn then you can give the dns-name with the dns ip address once the user is connected.
Another way I have heard of [but might be slightly larger to set up] is to have like a load balancer in front of the servers and let that decide on what server to route the request to (like for instance have ip based rules).
I am not sure about what you are after though, since this would not [the way I see it] make db migrations easier; but that depends on what is in the db I guess.
For web development (php/mysql) I found that having a second domain [and server either virtual or read] like test.example.com was easier to migrate to live.example.com since all files, links and subfolders etc was in the same location was a quick and dirty way to do quick and simple migrations from test to live.