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

时间:2015-05-15 23:22:53

标签: azure azure-deployment

我使用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分钟? 有没有办法加快速度呢?

2 个答案:

答案 0 :(得分:5)

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

  1. 包括上传包
  2. 软件包在内部被复制几次,直到它到达您的实例
  3. 我们有效地将软件包作为另一个磁盘安装到机器上
  4. 确认一切正常
  5. 将您的应用程序切换为从新安装的磁盘运行(意味着停止旧磁盘,启动新磁盘)
  6. 卸载包含旧软件包的旧磁盘
  7. 通知一切正常
  8. 这是对实际情况的过度简化。所有这些都是异步发生的,如果每个项目需要15-20秒,你会看到我的观点。

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

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

答案 1 :(得分:0)

关闭MSBuild输出。

在Visual Studio中,转到innodb_log_file_size。将两个MSBuild项目选项都设置为安静。

这样做的时候,我发现部署时间大大减少了。