Reputation: 7675
My companies' system is build from a collection of ASP.NET websites, webservices, windows services and databases. (around 40 all told)
We maintain three environments - QA, PREPROD and LIVE; but managing what is installed (and working) on each environment is a real pain. We seem to spend more time debugging what is installed & working in each environment that actually developing features.
I'm looking for a "diff" tool at the environment level - something that will tell me what is different between environments, which services are running on each environment etc etc.
Is there any existing tool out there like this?
Thanks!
Upvotes: 4
Views: 326
Reputation: 10650
The closest thing I can think of is the Visual Studio Team System Deployment Designer. You can design a model of the system and it's logical deployment architecture, and you can validate that against the physical deployment. For instance, you can validate that virtual directories are set up correctly, check against versions and patches of components and servers, etc....
You can also create reports "showing each diagram and a list of all the resources and settings for each application, logical server, endpoint, or zone on the deployment diagram. You can also include a list of deployment diagram validation errors and warnings in the report. Application development and infrastructure teams can use this report to share information needed to evaluate conflicts between application requirements and datacenter policy."
Upvotes: 0
Reputation: 2341
add to what all said, you might also want to use FinalBuilder, it is amazing tool for build automation it has saved me a lot of time doing things similar to what you do, it can automate the whole process, Compiling Visual studio project, file compare, FTPing.
hope this helps.
Upvotes: 0
Reputation: 20686
My development team is currently using a tool called ConfigMerge
(available on CodePlex) to help us source-control our web.config files. You may not care much about SCM, but a tool like that could help you manage deployments of config files because you could keep a single file that is common to all your servers, and break out the particular XML elements that need to be modified for each server. Let the ConfigMerge tool create the final result and deploy that.
That doesn't help you do a "configuration diff", but it might help reduce the need to.
Upvotes: 1
Reputation: 88092
We utilize a build server which is responsible for auto deploying sites, services, etc on successful builds to our dev environment.
Because we are using TFSBuild, we use TFSDeployer which monitors the Build Quality setting. When it is flipped to "staging", some powershell scripts execute to move the build into our staging environment.
For production, we also use TFSDeployer with one minor change. Instead of going directly to the production folders, it moves it into backup folders on the production servers. Then the infrastructure team manually copies it from their to the final resting place. This ensures that no one accidentally deploys to production.
All told it took a couple weeks to set up and work out any kinks. Since then everyone is happier and we always know exactly what is in each environment.
Upvotes: 0