31

目前我们正在 AWS Beanstalk 上运行我们的应用程序,但正在尝试确定 Azure 的适用性。

我们最大的问题是我们正在支付但没有使用的浪费的 CPU 时间。我们在 t2.small 实例上运行,因为它们具有我们需要的最小 RAM 量,但我们甚至从未使用分配的基本 CPU 时间量。(t2.small 为 20%)我们在一天中的短暂爆发期间需要大量的 CPU 能力,并且在此之前让更多的实例上线是我们处理它的唯一方法。AWS Lambda 对我们来说看起来是一个很好的解决方案,但我们依赖于 SAPI 等 Windows 组件,因此我们必须在 Windows VM 内运行。

查看 Azure 云服务,我们认为使用 Web 角色最适合我们的应用程序,但似乎 Web 角色只不过是启用了 IIS 的 Win 2012 VM。因此,随着应用程序的扩展,它只会带来更多这些虚拟机,而这正是我们目前所拥有的。Azure 是否有类似于 Lambda 的服务,您只需为使用的 CPU 处理时间付费?我们使用 CPU 资源效率低的原因是我们的语音生成应用程序使用了丢失的 3rd 方语音,但在调用 SAPI 时只能运行单线程,因为语音引擎在多线程时容易崩溃。我们无法控制这个语音引擎。它必须能够访问系统注册表和 Windows SAPI,因此理想的解决方案是以某种方式将所有依赖项包装成一个包并将其部署到 Azure 上,然后启动多个实例。

4

4 回答 4

43

微软刚刚宣布了一项新的无服务器计算服务作为 AWS Lambda 的替代品,名为Azure Functionshttps ://azure.microsoft.com/en-us/services/functions/

http://www.zdnet.com/article/microsoft-releases-preview-of-new-azure-serverless-compute-service-to-take-on-aws-lambda/

使用 Azure Functions,您只需根据您的函数运行时间和您选择的函数空间的内存大小,按每 GB 价格为您使用的计算付费,精确到 100 毫秒。函数空间大小可以从 128mb 到 1536mb。前 400k GB/秒免费。

Azure Function 请求按每百万个请求收费,前 100 万个请求免费。

于 2016-03-31T19:09:28.990 回答
7

根据此处 Azure 网站上的文档:https ://azure.microsoft.com/en-in/campaigns/azure-vs-aws/mapping/ ,等效于 AWS Lambda 的服务是Web JobsLogic Apps.

于 2016-03-22T15:08:36.650 回答
1

Azure 上与 Lambda 最直接的等价物是Azure 自动化,除了运行 Powershell 而不是 Node 等之外,它做了很多 Lambda 所做的事情。它不像 Lambda 那样紧密集成到其他服务中,但它具有相同的模型。即你编写一个脚本,它是按需执行的。

我认为 SAPI 你指的是语音 API?如果是这样,您可以为 Azure 创建 Powershell 模块,它们可以包含 dll 文件。在这种情况下,您可以创建一个模块来包装 SAPI dll,这应该可以满足您的需求。

如果您想要一个完整的计算环境,在运行时没有多台机器的复杂性。您可以使用Azure Batch,这将是 Azure 推荐的运行您正在寻找的内容的方式。

您需要评估的成本效益将是您的解决方案在本机 .net 堆栈(批量)上运行的速度,以及从 Powershell 运行时性能是否显着下降。

就个人而言,我会尝试自动化,它非常强大。

于 2016-03-22T15:39:59.827 回答
-2

azure 中有一种叫做“云服务”的东西,它允许您在纯 VM 上运行代码。这些缩放选项包括 CPU%、队列大小等。如果您可以安排您的需求,Azure 允许您轻松设置计划的缩放器,即从早上 8 点到早上 8:10 的 4 个 VM,当然,在 Azure 中,您按分钟付费,因此这可能是一个可行的解决方案。

我想说的更多,但 Azure 中的文档真的很棒,以至于我在这里提供我的“翻译”会冒犯他们。结帐 azure.com 了解更多信息 :)

于 2016-03-22T15:08:43.407 回答