views:

34

answers:

2
+1  Q: 

Deployment process

We are having a massive system having around 15 servers hosting .Net WCF services, mvc application etc. When we do a deployment (out of office hours) we have to uninstall and install everything on the live servers. This takes lot of time and if something goes wrong we have to rollback everything. can you please suggest something different to this? like Deply into a other environment (whenever you like) and switch the URL to point to new servers [This comes with the overhead of cost of maintaining 2 copies of production (active and passive)]

any other ideas please.

A: 

Does services need to be uninstalled for all deployments ?

You can have a script that does this against all the servers in parallel:

  • Stop any windows services
  • Stop IIS
  • Make backup of replaced files
  • XCopy assemblies, resources, website files.
  • Perhaps run InstallUtil if deploying a service (as needed).
  • Start IIS and services.

Such a script will not take too long to execute. With 15 servers it will be well worth the effort writing it and make the deployment and rollback process completely automated.

driis
A: 

It sounds like you need a load balancer to handle the trafic to your production servers. You would deploy all your new code to Server Farm B and test it using a test DNS entry. Once you are satisfied with the changes you would repoint your load balancer addresses from Server Farm A to Server Farm B it will then become live. The only down side to this is with database changes.

Jeremy E