为什么Visual Studio中的Azure部署需要这么长时间?

azure azure-deployment

2414 观看

2回复

1663 作者的声誉

我使用Azure .NET SDK 2.6创建了一个具有单个辅助角色的全新云服务。RoleEntryPoint几乎是空的。

第一次因为VM创建需要一段时间。我的期望是,发布后的尝试会更快。事实证明它至少需要约5分钟。检查VS中的部署活动日志我看到:

20:17:06 - Checking for Remote Desktop certificate...
20:17:07 - Applying Diagnostics extension.
20:17:29 - Preparing deployment for AzureCloudService2 - 15/05/2015 20:17:03...
20:17:29 - Connecting...
20:17:29 - Verifying storage account ...
20:17:30 - Uploading Package...
20:17:51 - Updating...
20:19:59 - Instance 0 of role WorkerRole1 is ready
20:20:00 - Starting...
20:20:19 - Initializing...
20:20:19 - Created web app URL: ...
20:20:19 - Complete.

为什么到此更新此应用需要2分钟?有没有办法加快速度?

作者: Igor Gatis 的来源 发布者: 2015 年 5 月 15 日

回应 (2)


5

1768 作者的声誉

决定

考虑到以下情况,更新Azure部署需要2到4分钟:

  1. 它包括上传包
  2. 软件包在内部被复制几次,直到它到达您的实例
  3. 我们有效地将软件包作为另一个磁盘安装到机器上
  4. 验证一切正常
  5. 切换应用程序以从新安装的磁盘运行(意味着停止旧的,启动新的磁盘)
  6. 卸载包含旧包的旧磁盘
  7. 通知一切正常

这是对实际情况的过度简化。所有这些都是异步发生的,如果每个项目需要15-20秒,你会看到我的观点。

如果您想要更快部署,可以执行以下操作:

  1. 如果您有大文件,请缩小软件包的大小。最好在启动期间从存储中下载大型依赖项,而不是将它们捆绑在包中
  2. 如果它是WebRole并且您希望快速测试更新,则可以在部署中启用WebDeploy,然后在VS中执行正常的“发布...”工作流。当您从VS发布包时,它只是一个复选框。之后更新文件需要几秒钟。请注意,对于要保留的更改,您必须通过完全重新部署来更新云包,否则如果实例重新映像,您将放弃所做的更改。这基本上只适用于开发。
  3. 如果它是一个WorkerRole,您可以将您的负载拆分为您的WorkerRole的EntryPoint从存储中下载的进程(简单.exe),解压缩并执行。如果您有更新的版本,则只需将新软件包上传到存储。您的workerrole只是监视存储包的较新版本,然后下载它,解压缩并在杀死旧文件后运行新的.exe文件。

希望能帮助到你。

作者: Panagiotis Kefalidis 发布者: 16.05.2015 02:08

0

1969 作者的声誉

关闭MSBuild输出。

在Visual Studio中转到Options > Projects and Solutions > Build and Run。将两个MSBuild项目选项设置为quiet。

当我这样做时,我看到部署时间大幅减少。

作者: joshmcode 发布者: 18.11.2018 12:04
32x32