According my experience, the best way to build the environments of one new applications is to draw a diagram...yes, draw a diagram.
When you build a diagram, you are able to identify the dependencies and try to solve your concerns about the way to feed your application, the main duties of each components and the workflow of each process.
In a formal way, you should use UML and define the model in a schema of 4+1 views to identify and understand all the domains of the application. In a practical way, you should build a diagram easy to understand and easy to share and explain in normal words what will you do; and this diagram could be a handmade diagram in a piece of sheet.
Once you have the diagram, you should identify the external dependencies and identify the posibles ways to feed each of this interfaces. These ways will give you the requeriments to build the environments, I.E if you are able to capture information manually in production environment or put the same information directly in the database for others environments.
The conclusion of this analisys will give you a view of the posible features of each of the environments and let you know what are the alternatives to replace a system that is not available to setup in some of the enviroments, I.E, the accounting system is not available to support product estress test...you need to address this output feed to another system in order to analise it in other context and it should be included in the test plan.