On my QA and production servers I have 1 background procecss (Windows service) running with 5 different IIS ASP.NET MVC applications.

I have a folder c:\app\ which contains a subfolder named by the build number (i.e. c:\app\1234)

I am using Bamboo for my CI which runs a script that performs an update from SVN, compiles my solutions, and runs tests.

Finally, the script will us MSDeploy to push out the new files (all the IIS apps as well as the windows service app) to the target servers into the director c:\app{revision-number}

Up to this point, everything is perfect and I cannot see any issues with this. My question is related to the following part of the deployment.

After all the files are deployed to the servers, the service is remotely shut down and the path is updated from C:\app{old-revision} to c:\app{new-revision}.

Using MSdeploy, we remotely run commands (appcmd) to reconfigure each of the IIS apps (in a specific order) to have their root's point to the c:\app{new-revision}\xyz.

Once the apps are deployed and paths are updated, we restart the background service. At this point, the entire application is running the updated version. All in all, this process is very quick and after the files are uploaded, it takes just seconds to reconfigure all the apps.

The nice thing is that I can also run a rollback script that will quickly reconfigure the apps to point back to an older revision if something should go wrong.

Specifically, my question has to do with changing the root path of IIS applications.

I know that this will cause the application to be restarted (maybe even the app pool to be recycled?). Our sessions are stored out-of-process so sessions are still maintained even though the app restarts.

Is there anything else I should be aware of that could go wrong with this approach?

link|improve this question
dont most people keep a certain number of builds on teh CI machine and just push app to iis without any rewrites then if they need to rollback they use a build from the CI? – Steve Jan 12 at 18:14
@Steve sure but that isnt the point of the deployment process. The point is to be able to push full releases of 5 IIS apps and a windows service with the press of a button. The rollback process is just a benefit. For all intents and purposes, you can ignore that part completely. – Bryan Migliorisi Jan 12 at 18:22
How are you handling database changes (data and schema)? Or does Bambooo handle that as well? – Lèse majesté Jan 13 at 1:14
2  
Hi Bryan, open-ended "what can go wrong with my setup?" questions aren't a good fit for the Stack Exchange format: they're rarely applicable to other people and there's not going to be definitive answer. Can you revise your question to ask something more pointed beyond "anything wrong with what I'm doing here?" – Mark Trapp Jan 13 at 1:17
feedback

migrated from superuser.com Jan 12 at 17:06

This question came from our site for computer enthusiasts and power users.

closed as not constructive by Robert Harvey, Matthieu, Mark Trapp Jan 13 at 19:03

This question is not a good fit to our Q&A format. We expect answers to generally involve facts, references, or specific expertise; this question will likely solicit opinion, debate, arguments, polling, or extended discussion. See the FAQ for guidance on how to improve it.

Browse other questions tagged or ask your own question.