3

我们目前正在尝试将部署我们新的 ASP.NET 项目与 Octopus 集成,我想知道是否有人尝试使用 Octopus 来部署经典的 ASP 站点?

我知道这是可能的,并且理论上我知道该怎么做,但是我们的问题源于 ASP 站点非常庞大这一事实。在将所有视频、图像和 pdf 的总大小相加后,该网站的重量不到 3 gig。因此,当将更改签入 TeamCity 并创建 NuGet 包时,Octopus 会将 3 gig nuget 包推送到 2 个单独的负载平衡服务器。

我们无法为媒体文件创建共享目录或 CDN(至少现在还没有),所以谁能告诉我一个很好的攻击方法?还是 Octopus 不是大型 ASP 站点的好解决方案,而 Web Deploy 会更好?如果是这种情况,如何为 Web Deploy 实施备份解决方案,以便可以回滚任何错误?

提前感谢您对此的帮助。我们正在将这些 ASP 站点转换为 MVC,但这需要一段时间,在完成之前,我们必须找到一种方法来使用它们。

4

2 回答 2

3

您应该将 ASP 站点和媒体文件打包为 2 个单独的 NuGet 包。这将允许您更新和部署 ASP 代码,而无需部署所有媒体文件(假设代码更改比媒体更频繁)。

实施细节

  • 设置 TeamCity 以将 ASP 站点和媒体文件打包为单独发布的 NuGet 包。
  • 在 Octopus Deploy 中,将 2 个 NuGet 包中的每一个添加为单个项目的部署步骤
  • 当您在 Octopus 中创建新版本时,请为 ASP 代码选择最新的包版本,为媒体文件选择之前发布的包版本。
  • 部署版本时,您可以选中一个框以跳过媒体文件的部署

提示

  • 使用 Octopus 变量“OctopusWebSiteName”来指定您的媒体文件包应该部署在您的 ASP 站点的子目录中。(如“默认网站/媒体”)该变量可以限定为特定包,以便仅在部署该包时应用。
于 2012-12-27T14:47:26.247 回答
0

您真的需要每次都推送所有内容吗?您不能只推送更改吗?

于 2012-12-03T08:29:11.713 回答