2017-03-20 74 views
10

我们有这2个方面的一些ASP.NET Web应用程序:设置为ASP.NET Web应用程序

  • 企业解决方案(MSI般的安装程序)
  • 云解决方案(使用相同的安装程序)

目前我们使用自制的安装程序,但考虑是否可以用更方便和适合CI/CD开发周期的东西替换它。

可以使用哪些技术/产品?目前我想到webdeploy,但不知道它如何应用于企业设置...

回答

4

这是一个相当广泛的问题,但我认为它应该得到答案。

1(部分)打开源溶液

之一来配置CI循环的方法是使用与詹金斯MS部署功能一起。 This article显示如何快速设置工作以将Jenkins与msdeploy工具集成。

基本上它配置一个作业中使用PowerShell来执行部署:

msdeploy.exe -allowUntrusted=true -verb:sync -source:contentpath='D:\WS\ExampleProject' -dest:contentpath=F:\webfolder,computerName=exampleproject.example.com,Username='yourdomain\username',Password='password' -skip:objectName=dirPath,absolutePath="config" -skip:objectName=filePath,absolutePath="web.config" 

它还告诉正在执行的用户应该是目标服务器上的管理员,但你可以通过Web部署处理程序的正确配置来规避如this article所示。

在Jenkins集成(我推荐)之前可以完成的一个中间步骤是配置Web部署。这允许使用Visual Studio和允许部署的任何配置用户快速检查可以在目标服务器IIS上执行部署。它还允许快速查看当前代码库(网页,JS文件,二进制文件)和目标服务器部署软件包之间的差异。

2的Visual Studio 2017年的DevOps解决方案

微软最近发布的2017年VS其中包含的DevOps,可处理大部分与CI/CD的问题,一个很大的支持。我找不到参考,但我记得这个功能只适用于Enterprise版本。另外,好消息是微软的技术并未收紧。

有关该主题的介绍可以找到here

我认为WebDeploy可以使用没有重大问题。从我与它的经验:

  • 备份限制:只能在网站级别,而不是Web应用程序级别
  • 部署时间完成:相当小 - 实际文件拷贝+网站备份(如果配置)+应用程序池回收。
0

最近我看到一家供应商提供希望内部部署的客户使用他们用于云部署的相同Docker镜像。看起来像一个很好,干净的解决方案。

另一种选择是nuget软件包 - 托管自己的存储库。然后使用Octopus Deploy之类的工具进行部署。我对它并不十分熟悉,但是在初始设置后,这两种解决方案看起来都很简单。

相关问题