【问题标题】:How to build a auto-scale Azure Cloud Service based on network usage?如何根据网络使用情况构建自动缩放的 Azure 云服务?
【发布时间】:2015-03-29 18:06:08
【问题描述】:

Azure 云服务具有基于 CPU/队列的自动缩放功能。我们有一组机器运行 API 来上传和处理文件。虽然我们将处理部分移到了 Worker Role 上,该部分根据队列大小进行扩展,但服务器在响应下载等其他操作的同时也负责上传。

目前,我们正在使用更多机器以防万一,但我们希望构建一种可扩展且具有成本效益的方法,同时为我们的用户提供出色的上传体验。

您的方法是如何创建一种方法来检测来自同一云服务的所有机器的网络使用情况并在必要时自动扩展?

【问题讨论】:

    标签: azure networking cloud azure-cloud-services


    【解决方案1】:

    我会: 1) 创建指标来计算下载/上传文件所需的时间。 2)聚合一些持久层中的指标(我们在 Azure 中有很多) 3) 创建一个查看这些指标的服务 4) 检查阈值 5) 使用 .NET 管理库触发受影响云服务的扩展。

    这种方法也可以根据您的解决方案进行扩展。您最终可以将缩放部分与检查部分分开,并将它们作为两个不同的服务进行异步通信。

    我们还有一个旧的、现在开源的项目,可以为您完成其中的一些工作,因此您不必重新发明轮子。它被称为芥末。请小心,因为这不再维护,但正如我所说,您可以将其用作灵感。

    【讨论】:

    • 感谢您的快速回答。关于设计,下载不会对服务器造成压力。它是从 Azure 存储/CDN 完成的。云服务仅授权和生成 URL。云服务处理块上传。 1 - 上传速度始终取决于客户端。可能是 Mbps,也可能是 Kbps 速度。 2 - 什么持久层?内存缓存?我们有时会考虑这是否是上传区块的正确方法,但由于它需要服务器检查,我们似乎别无他法。
    • 不客气。 :) 您的问题是如何使用网络使用情况进行自动扩展,您可以使用机器的性能监控来收集这些指标并应用我上面描述的方法。另外,您通过云服务上传是否有原因?正在进行哪些检查?我们支持存储上的 CORS,因此结合 SAS,您可以安全地上传 Blob,并在上传完成后在您的云服务上异步处理它。它将节省带宽和您现在遇到的所有麻烦。
    猜你喜欢
    • 2016-03-29
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 2022-07-26
    • 2016-04-28
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    相关资源
    最近更新 更多