4

我很好奇其他人如何构建(或建议构建)具有多个角色的 Azure 应用程序。特别是我很好奇你是如何让他们在订阅和托管服务之间破坏我们的。

在我的特殊情况下,我们有一个托管 webapp 和 API 的 web 角色。这种变化很快,有时每天多次。我们还有几个不同的工作人员角色来执行视频处理、电子邮件发送和报告/分析等工作。工人很少更换,有时一个月不到一次。我们在一个订阅中运行所有这些。每个角色都在其自己的托管服务中。

这种设置让我们可以轻松部署一个角色,而不会影响其他角色。它还避免了不必要地中断 Worker 角色,因为它们有时处于必须重新启动的长时间(10 分钟以上)处理作业的中间。

那么你们是怎么做到的呢?

我问的部分原因是微软似乎希望你把所有东西都放在一个托管服务中。例如,预览中的新缓存功能仅在单个托管服务中可见,这使得它对我目前拥有的布局几乎无用。

4

1 回答 1

4

这有点意见,但我认为你有它的权利。为所有角色(原子更新、版本控制等)部署单个包当然有优势。但是,在更复杂的场景中,我发现拆分成不同的部署和托管服务效果很好。如果您想要异地冗余,则无论如何您都必须进行不同的部署。

如果您对版本控制小心(假设您的部署进​​行通信),您可以轻松地进行不同的部署并获得更快部署的好处。我们发现我们的工作角色比我们的 Web 角色具有更高的部署率,因此将 Web 角色分开是有意义的。借助用于网站的新 Windows Azure 功能,我们正在认真考虑将它们进一步拆分,并从中简单地运行我们应用程序的 Web 部分。我们的 API 可以去那里,甚至可以部署到其他专用实例。

我们唯一没有做的是在订阅之间拆分。我认为这样做没有技术上的理由。可能有一个企业可以绕过配额,但现实情况是订阅并不重要。但是,如果您使用 Mgmt API 为不同的托管服务使用不同的订阅 ID,那么以后可能会很痛苦。出于管理目的,我也很犹豫混合和匹配来自不同订阅的存储和托管服务。将其全部保存在同一个潜艇中可能是个好主意。

于 2012-06-11T16:45:37.083 回答