Worker Role 第三方软件
Posted
技术标签:
【中文标题】Worker Role 第三方软件【英文标题】:Worker Role third-party software 【发布时间】:2014-11-30 17:56:55 【问题描述】:我们在 Azure 虚拟机中托管了第三方软件。该软件托管一项由我们的云服务 Web 角色之一使用的服务。
问题在于 VM 和 Web 角色之间的网络延迟显着影响了我们应用程序的性能。
一种解决方案是在同一个云服务中发布此第三方软件(以工作者角色)。
VM 角色 听起来像 good implementation for the above problem。不幸的是,这是一项已弃用的服务!
一个想法是将相关的安装脚本和文件打包到 Visual Studio 项目中,并配置 ServiceDefinition 以相应地设置软件。这里担心的是安装文件超过 1Gb。
目前是否有任何 Azure 服务可以支持我的问题?是否有虚拟机角色的替代品?
【问题讨论】:
只是好奇,关于延迟:您的虚拟机是否与您的云服务位于同一区域?如果是这样,您是直接连接(例如虚拟网络)还是通过 Azure 的负载均衡器路由回 xzy.cloudapp.net(这可能会增加一点延迟)? 【参考方案1】:虽然有点旧,但您可能想看看 CodePlex 上的Azure Bootstraper
。从项目描述页面:
Windows Azure 引导程序是一个旨在使用的命令行工具 通过您在 Windows Azure 中运行的 Web 和 Worker 角色。这个工具 允许您轻松下载资源(公共资源或 blob 存储中的文件),如有必要,提取它们,然后启动 他们。由于您不想总是在 重新启动,它还将帮助跟踪这些依赖项并仅启动 安装一次!此外,还有一些非常有用的 使其成为与您的角色打包的绝佳工具的功能。
另一个想法(虽然我没有尝试过)是使用Azure File Service
。您可以做的是将安装程序上传到 Azure 文件服务共享中,然后将共享挂载到云服务 VM 中,并将其用作 VM 上的驱动器。您应该可以通过这种方式安装软件。
【讨论】:
感谢您的回答。不幸的是,Azure 文件服务仍处于预览阶段。引导程序看起来很有趣,但你提出了一个很好的观点——它有点过时了。也许我们可以改用 BLOB 存储?我认为worker角色和blob之间的传输速度应该足够快。 尽管 Azure 文件服务仍处于预览阶段,但我仍会尝试使用它。 Blob 存储将是我的后备选项。如果我没记错的话,Azure Bootstrapper 会使用 Blob 存储。即使它是一个旧产品,但问题是 Azure Blob 存储的基础知识(例如从 Blob 存储下载文件)没有改变,因此这不会影响您 IMO。 HTH。【参考方案2】:您说得对,在 cspkg 中捆绑 3rd 方软件在大小方面可能存在问题。
通常的做法是从启动命令文件 (.cmd) 或 OnStart()
下载所需的软件。这些下载可以从您可以访问的任何地方获取:Azure blob 存储、实际供应商本身(例如从他们的公共下载链接下载)等。在您的启动脚本中,您需要处理下载(以及潜在的解压缩) ) 到本地文件夹中,然后根据需要进行安装。
【讨论】:
以上是关于Worker Role 第三方软件的主要内容,如果未能解决你的问题,请参考以下文章