Sometimes you hear the expression "test circuit" (in the context of a test environment). The history of the origin of this expression is interesting. Wikipedia is silent on this issue, and so is Google.
UPD (moved from comments): quite a lot of people use this term and no one can clearly explain where it came from. Nevertheless, this "stable expression" surely has an interesting history.
There is no unambiguous terminology in this matter. The loop can be an environment or environment , instead of test and product, the official documentation can refer to the test loop and the production loop .
The terminology is also influenced by the development process that is practiced by a team or an entire organization. Usually, all programmers develop and test code on their computers and have all the necessary environment for this, for example, local versions of MySQL, Redis or MongoDB. If development is carried out through Docker, then the necessary servers are launched in containers locally.
This circuit can be called local or personal . It is enough to verify that the programmer seems to have written everything as expected. There you can run unit and integration tests.
When the task is completed by the programmer, it sends the code in a common repository, from which the project is going version, which is called in the jargon of virgins (dev elopment). This circuit allows you to check that the programmers did not break anything on each other, it is quite unstable. This is where automated integration tests are run.
When programmers believe the code can be submitted for testing, they push the changes to the test loop , where manual tests can be run. This is where subtleties arise due to the fact that testing can be very different, for example, stress testing. For load tests, you usually create your own loop.
When everything is ready, the tested version goes to prod ( prod uction), it is also the contour of industrial exploitation .
What is a contour or environment physically? Depends on development tool and technology. Often these are Docker containers that are deployed across multiple virtual machines. For each circuit, we create several virtual machines, and run the next version of the code there.
If you work in Azure, you can create multiple database servers, each for a different environment. Such resources can be grouped by naming the groups dev , test, and prod .
If a project has been developed for a long time, and it is no longer possible to implement container development there, system administrators can allocate several different physical servers for each circuit, managing them manually. Time consuming, but such contours are also found, because some projects have existed for 15-20 years.