首页 文章

在Azure中运行.NET服务代码的位置?

提问于
浏览
0

当我需要一个不断在后台运行的程序并处理队列/数据库数据/计划任务/等时,我创建一个Windows服务应用程序并在Azure VM上运行它 . 这仍然是目前最佳的方法吗?在我看来,Azure Worker角色(作为替代方案)有点被遗忘/忽略/折旧 . 我应该尝试制作更多面向服务架构的服务吗?

部分我正在寻找的是一种相对简单的部署,运行和维护代码的方法,老式的代码将放在Windows服务中(尽可能少的维护) .

1 回答

  • 1

    Service Fabric似乎有点过于复杂(而且价格昂贵:请参阅所需的最小VM数量)以提供您所描述的内容,除非这是关键任务的企业级代码 .

    您对Windows服务的引用使我认为这些是长时间运行的进程 . 根据您需要的处理时间,您有以下几种选择:

    • Azure Functions:适用于小型,面向任务的功能,与其他天蓝色服务具有出色的集成:存储,事件集线器等(但有5分钟超时)

    • Azure Batch Service:对于长时间运行的批处理进程,管理VM群集上的作业分配,您可以定义群集大小和生命周期 . 可以运行任何类型的工作负载,包括预先存在的可执行文件等,并且可以安排 - 所以这可能是您最有可能的候选人 .

    对于批处理服务选项,您只需支付正常的计算使用费(即,您为部署的批处理作业服务的虚拟机)

    对于Azure Functions,相对于函数在运行时消耗的内存量,每100ms计费 . 这个平台是“无服务器”[Lol,很棒的名字]因为你不必担心扩展,它会检测到你有大量的流量并为你扩展 .

    正如您所指出的那样,有较旧的选项:Azure Cloud Service和WebJobs ...... Azure Functions实际上是WebJobs的扩展 .

    所以,有很多选择 - 但如果不进一步了解代码的要求,很难做出真正的建议 . 我希望这有助于指出一个有用的方向 .

相关问题