Hacker News new | ask | show | jobs
by aaronrc 5553 days ago
Didn't really understand what's wrong with msdeploy?

Deploying can't get much easier than clicking a single button in VS.Net... Rolling back IS an issue but it can be mitigated by versioning one's source code and testing the site locally before deploying.

5 comments

I spent a few years working for BigCo, and the one thing I learned there was an appreciation for rollback scripts.

every single change had to be accompanied by a full and tested rollback script, and given often the deployment was messy (lots of integration/hardware mixes/etc) writing these was difficult and time consuming. ... but, they saved my arse on more than on occasion.

moral of the story: always have a backout plan. Stuff goes wrong. not often, and if you're good, then rarely, but when it does you need a way out.

I'm envious that your experience lets you believe that local testing can mitigate the need for rolling back a production deployment.
Back in the day, a company I worked for had a very “manual” deploy process—basically, whoever deployed it (me) had to be sure to follow a 7 step process to the letter, or else Bad Things Would Happen. One time, I accidentally skipped a step or two, and Bad Things were happening, and to make it worse, I couldn't figure out what they were.

There was, however, a working version of the code sitting in the directory alongside this horrifically broken monster. I knew the configs were correct because they had been working not 5 minutes ago, and I hadn't changed them. So I updated a symlink (this was on Linux/Apache, but it would apply on IIS/Windows too), and everything was happy again, though using a slightly older codebase.

If you don't understand what's wrong, you've never seen/used/experienced the beauty that is capistrano deployment.
Nope I haven't. Guess I'll just keep pressing my one step VS.Net publish button in blissful ignorance :).
If you're one person working alone - then yes a "button push" might work for you. For teams of many people that like to push "panic patches" - that doesn't work out so well.
I'm sure MSDeploy is nice when it works. Serious emphasis on "when it works". I spent an entire evening trying to get MSDeploy to push something from my local machine to my VPS. Conditions: The VPS is remote and not a member of my home-domain, but the path between them is 100% whitelisted in all intermediate firewalls.

How hard can that be?

Evidently very hard. Despite spending the entire evening trying to get them to communicate and push files, it simply didn't happen. In the end I ended up writing my own deployment-system based on source-control, Samba and rsync in Bash. It was easier, it worked and I know why it works.

If that is easier to get working than a "one click" solution, the authors of said solution better get a bigger button. I can't seem to click this one.

Oh, thank goodness. Just yesterday I tried to deploy 6 different apps from the IIS app gallery, with 0 successful deploys. I thought maybe I was starting to go retarded.

Apparently there are some bugs which prevent parameterized deploys from working properly. Also, the documentation for Microsoft.Web.Deployment is very poor.

I've had similar frustrations with msdeploy. Are you initializing the rsync/Bash from your local machine? What are you running on the server to receivie it?
It's all done by a bash-sc ript on an intermediate linux-shell which has access to source-control (perforce) and the server (via smb). I can post the script later if you are interested.