Considering WebDeploy for internal cluster sites. Experiences?
We have recently started to use cluster servers in our company. I have done some reading on MS WebDeploy and the techno开发者_如何学JAVAlogy looks promising. Our requirements:
- Create backups before deployment
- Deploy to different servers
- Test server
- Two live clusters
- Ability to stop application pools for specific web applications before publish and start them again afterward
- Allowing limited access: In other words a developer may only publish to sites that they are responsible for
- Possible customisation: We would like to disallow publishes if related bugs have not been solved in our bug tracker, and possibly more, like approvals from management. Can external customisations be done without losing VS integration
- Visual Studio integration and the use of Web.config transforms
- SQL Schema changes and especially stored procedures without affecting data
Our environment
- IIS 7
- Windows Server 2008
- SQL Server 2005 (Planned move to 2008)
- Visual Studio 2010
Based on my research it does seem that many of the above requirements have been met. What I would like to know is how reliable the solution is and whether the above requirements will be met. More importantly I would like to know what your personal experiences with webdeploy are and whether you would recommend it or whether there are better alternatives.
At the moment we are using file copying which proves to be unreliable (due to human error) and tedious.
We do about 80% of what your asking for using WebDeploy packaging and Thoughtworks GO! for orchestration of our release pipeline. It works really well. We have over a 100 websites/services and deploy something to production every four hours. The following post describes how we perform the deployment and links to related information:
http://www.dotnetcatch.com/2016/12/28/zero-downtime-clustered-deployment-of-webdeploy-packages-via-powershell/
One note, config transforms happen at build time which is problematic when you want to deploy to multiple environments. WebDeploy parameterization accomplishes the same result but is applied at deploy time. Check it out -
http://www.dotnetcatch.com/2014/09/08/parameterizationpreview-visual-studio-extension/
精彩评论