English 中文(简体)
Opinions on MSDeploy
原标题:

You know, the next "big" and "enterprisey" thing from Microsoft.

Is it just me, or is it really hardly for humans? Main highlights are (IMO):

  • Absolutely cryptic syntax (-skip:objectName=filePath,absolutePath=App_Offline.* just for skipping App_Offline.html)
  • Manifest as an after thought
  • Lack of thorough documentation
  • Not a word about extensibility (except for several blog posts out there). Moreover, all these extensions developed in great pains have to be registered in GAC and registry
  • Waaay too low-level (metadata/metakey; all this IIS jazz)
  • No integration with MSBuild

Granted, MSDeploy and MSDeployAgent are quite powerful, but do they really need to be that complex for relatively simple tasks?

最佳回答

I too share your frustrations over the lack of documentation and the apparent low-level nature of this tool.

However what MS has done is finally create a free tool with which you can actually script whole server deployments, including parameterising addresses, configurations etc. This is unfortunately a very complicated thing to do - given how many bits of configuration actually go into a web server - and this is probably the best way to do it all.

What we need now is a really good GUI that can help build up these packages, and scripts etc. The GUI that is embedded within IIS is good - but again, short on explanation - so hopefully soon that ll be addressed.

On the functional side, I m using at the moment to deploy a site from dev -> staging -> live with parameters to change bound IP addresses etc. I was deeply frustrated that it took me a few days to get it all working - however now I have it, I can remove a lot of the possibly of human error at the IT Support side - who are responsible for our deployments. I now only have the configuration of my master staging server to worry about - and can be sure that all the servers in the web farm will be kept in sync whenever I deploy.

As Sayed mentions, as well, there are MSBuild tasks in 2010 (the Website Deployment feature is now implemented using msdeploy) to work with this - which also brings the possibility of a true Continuous Integration environment to VSTeamSystem - having a team build that can actually perform a full web deployment as its last step is very exciting (and scary, granted!).

问题回答

Actually there are MSBuild tasks for MSDeploy. They will be shipped with .NET 4/Visual Studio 2010.

Although a bit rough around the edges, I ve come to like MSDeploy quite a bit. Using it to sync web servers in a farm is very useful as it is efficient (only copies changes) and takes care of actual IIS settings in addition to content files. It seems like MSDeploy is a building block for various scenarios and uses. Also, as previously mentioned, there is a MSBuild task for MSDeploy in .NET 4. I ve taken advantage of this MSBuild task to make deployment of my web applications from TeamCity trivially easy. I ve blogged here it here:

Web Deploy (MS Deploy) from TeamCity - http://www.geekytidbits.com/web-deploy-ms-deploy-from-teamcity/

I have recently started implementing a deployment pipeline and I found below links quite useful:

Also I used these references:

  • Video about MSBuild on dnrtv.com
  • Microsoft Press book called "Inside the Microsoft® Build Engine: Using MSBuild and Team Foundation Build" which you can buy PDF version from Oreilly

Finally, "Continuous Delivery" book, gave me good ideas about deployment pipe line, although the book is not focusing on MSDeploy, but it is really worth reading.

The statement of documentation is typical of a MSFT 1.0 product, unfortunately MSDN no longer have dedicated Developer Technology Engineers to fill the gaps --- instead, there is a blind faith that the web will provide it.

I am actually considering dusting off my writing skills and write a short ebook on it since there is likely a market for it....

Msdeploy definitely has a touch of the PowerShell to it: power over simplicity rather than worse is better.

There is no Windows alternative to it, however you can hybridize some of its powers to make automated deployments. For example:

  • Compile your solution with Team City and msbuild
  • Use msdeploy to transform your site and web.configs on the build server
  • Manually FTP a ZIP file of your site (it doesn t support FTP)
    • Alternatively, use its remote deploy capabilities. This requires port 8172 open, lots of security changes and as far as I m aware no concessions for load balancing
  • Use msdeploy on the live site to sync changes

As a tool it s clearly aimed at service providers as it s an enormous Swiss army knife. You can do all kinds of things to IIS with it, which for the most part are over kill for small businesses. I ve no experience of large scale IIS setups so maybe that s where it shines.





相关问题
Does Web Deploy work with VS2008?

I was wondering if Web Deploy found here: http://www.iis.net/expand/WebDeploy works with VS2008?

How to resolve StandardWrapperValve error on Catalina?

I am creating a signup application with validation and Captcha (using SimpleCaptcha). I am able to deploy my application on localhost and everything works perfectly inclusive of the captcha. But when ...

Opinions on MSDeploy

You know, the next "big" and "enterprisey" thing from Microsoft. Is it just me, or is it really hardly for humans? Main highlights are (IMO): Absolutely cryptic syntax (-skip:objectName=filePath,...

Is there a Perl or Lua alternative to Capistrano?

For a number of web-applications I need something like Capistrano to automate deployment. I know Capistrano can be used to deploy non-ruby applications but I m not familiar with Ruby, so I expect ...

网络开发的颠覆部署工作流程

仍然学习颠覆的基础,但从一开始,就有一个目标,即实现这种目标:使现场部署过程自动化。

热门标签