Environments have limitations, including leakage and conflicts with exported resources.
Plugins can leak between environments :
Environment leakage occurs when different versions of Ruby files, such as resource types, exist in multiple environments.
When these files are loaded on the master, the first version loaded is treated as global.
Subsequent requests in other environments get that first loaded version.
Environment leakage does not affect the agent, as agents are only in one environment at any given time.
Exported resources can conflict or cross over :
Nodes in one environment can collect resources that were exported from another environment, which causes problems — either a compilation error due to identically titled resources, or creation and management of unintended resources.
The solution is to run separate masters for each environment if you use exported resources.