为什么从VisualStudio部署Azure需要这么长时间?

为什么从VisualStudio部署Azure需要这么长时间?,azure,azure-deployment,Azure,Azure Deployment,我使用Azure.NETSDK2.6创建了一个全新的云服务,其中只有一个工作者角色。RoleEntryPoint几乎是空的 第一次因为VM的创建而花费了一段时间。我的期望是,接下来的发布尝试会快得多。结果表明,这至少需要5分钟。检查VS中的部署活动日志我看到: 20:17:06 - Checking for Remote Desktop certificate... 20:17:07 - Applying Diagnostics extension. 20:17:29 - Preparing d

我使用Azure.NETSDK2.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到4分钟更新Azure部署的时间并不多,因为:

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

    如果您想要更快的部署,可以做一些事情:

  • 将包的大小减小,以防其中有大文件。在启动期间,最好从存储中下载您的大型依赖项,而不是将它们捆绑在软件包中
  • 如果是WebRole,并且您希望快速测试更新,则可以在部署过程中启用WebDeploy,然后从VS中执行正常的“发布..”工作流。从VS发布包时,这只是一个复选框。之后,更新文件需要几秒钟。请注意,对于要持久化的更改,您必须通过完全重新部署来更新云包,否则,如果实例重新映像,您将丢失所做的更改。这基本上只是为了发展
  • 如果是WorkerRole,您可以将负载拆分为进程(simple.exe),WorkerRole的入口点从存储中下载、解压缩并执行这些进程。如果您有一个更新的版本,您只需将一个新的包上载到存储。workerrole只需监视较新版本软件包的存储,然后将其下载、解压并在删除旧的.exe文件后运行新的.exe文件

  • 希望有帮助。

    关闭MSBuild输出

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


    当我这样做时,我发现部署时间大大缩短。

    我的应用程序是一个hello world。没有什么可以移除的。上传花了21秒。最长的一步是“更新”,总共2:08。我想知道它是否可以被优化。听起来上传只是在一些检查之后才开始的,这显然是次优。如果它们是异步发生的(假设你是并行发生的),那么它们应该不再需要单个最长的任务。Gatis,Azure中的各种管理操作都在不断地调查和改进(自Azure启动以来,情况已经改善了好几个数量级)。但在您的开发/测试周期内,如果您想进行更快的更改,请参阅谢谢kwill。我希望有一种自动化的方法可以做到这一点。为什么会有人否决这个问题?azure中的反馈循环太慢,会影响开发人员的性能。我希望我的部署只需要5分钟!您不知道这场斗争……Sav也许您想知道投票表决这个问题,让它对Azure用户更具吸引力?我发现我的代码的某些更改会使更新DLL和PDB花费很长时间。我想知道它是否有时会修补DLL和PDB文件,有时会完全覆盖它们。我的我们总共有30MB,所以我想上传可能需要一段时间。