This is a general discussion / question for server applications in general.
How do you determine if your code instance is working, is Production or Dev / Test / UAT / etc? Do you have a naming convention for the server (for example, all production servers are called xxx-PROD)? Do you have a special file or database entry that says “This is Prod” that is not released using the normal version control process? Do you have a parameter, somewhere someone manually updates to "Prod" or "Non-Prod"?
In particular, how do you overcome the following problems that I have seen:
If you use a special file or database record or parameter, and the administrator is instructed to make a copy of Production for some testing work, for example. to update the UAT, how do they guarantee that the copy does not end with this special installation / file / database settings? How does a copy know that this is not Production? for example, the process depends on the administrator who knows (a) that they need to make changes, and (b) how to do it.
If this is based on a naming convention for the server name, I assume that it matches the QA of the proposed names for all servers. You will need an approval process to go through before any server can be named.
How are you going to test individual parts of the Prod / Non-Prod system to ensure that they work correctly in both scenarios?
- , , ?
, , ( ?), , Production ( , , ), (.. , dev).