I'm working in a small development shop that maintains a fairly large number of custom software products. They have 3 environments -- Test, Staging, and Production where software is run from. The vast majority are web applications (ASP.NET) while a few are scheduled applications or Windows Services. The applications all interact with one another via ASP.NET Web Services, a handful of WCF services, and DLL libraries, and all share a significant number of databases.
The management team is looking for a solution to keep track of all of the instances of software running on the different servers -- Application A depends on B and C, and uses Database X with login credentials LMNOP etc.
Are there any off-the-shelf products out there that can help with this task, or are we better off developing something from scratch?