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

Igo*_*tis 10 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.
Run Code Online (Sandbox Code Playgroud)

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

Pan*_*nos 5

考虑到以下情况,更新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文件.

希望能帮助到你.

  • Gatis,对Azure中的各种管理操作进行了不断的调查和改进(自Azure开始以来,事情已经有了很多改进).但是在您的开发/测试周期中,如果您想进行更快的更改,请参阅http://blogs.msdn.com/b/kwill/archive/2013/09/05/how-to-modify-a-running-azure-service的.aspx (2认同)